2010-11-27 4 views
2

Ich mache Vollbild auf diese Weise:Cocoa Vollbild Problem mit keyDown und keyUp

NSRect frame = [[NSScreen mainScreen] frame]; 

// Instantiate new borderless window 
fullscreenWindow = [[NSWindow alloc] initWithContentRect:frame 
        styleMask:NSBorderlessWindowMask 
        backing:NSBackingStoreBuffered defer: NO]; 

startingWindow = [self window]; 
[startingWindow setAcceptsMouseMovedEvents:NO]; 
[startingWindow orderOut:nil]; 

if(fullscreenWindow != nil) 
{ 
    // Set the options for our new fullscreen window   
    [fullscreenWindow setReleasedWhenClosed: YES]; 
    [fullscreenWindow setAcceptsMouseMovedEvents:YES]; 
    [fullscreenWindow setContentView: self]; 
    [fullscreenWindow makeKeyAndOrderFront:self ]; 
    [fullscreenWindow setLevel: NSPopUpMenuWindowLevel-1]; 
    [fullscreenWindow makeFirstResponder:self]; 
} 

Nach dem Einschalten nicht funktioniert keyDown und keyUp auf Vollbild. Was tun, damit es funktioniert?

Vielen Dank im Voraus.

Mit freundlichen Grüßen Chudziutki

Antwort

1

Warum tust du das selbst alle arbeiten? Senden Sie einfach Ihre Ansicht eine -enterFullScreenMode:withOptions: Nachricht.

+0

Ich benutze das nicht, weil ich Fensterebene "NSPopUpMenuWindowLevel-1" nicht festlegen kann. Ich versuche dies mit Optionen "NSFullScreenModeWindowLevel" oder nach Verwendung dieser Funktion von SetLevel, aber beides funktioniert nicht. – Chudziutki

1

Sie müssen die NSWindow-Klasse mit Ihrer eigenen Klasse überschreiben, die von NSWindow erbt. Dann überschreiben Sie die Ereignismeldungen keyDown und keyUp, um sie zu erfassen. Sie geben diese Ereignisse dann an diejenigen weiter, die sie brauchen.

+2

Ja, ich muss NSWindow überschreiben, aber es muss nur gesetzt werden - (BOOL) canBecomeKeyWindow {return YES; }. Vielen Dank, um die Richtung zu zeigen :). – Chudziutki