2010-11-27 2 views
2

я сделать полноэкранный режим таким образом:какао Полноэкранный проблема с KeyDown и 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]; 
} 

После переключения в полноэкранный режим не работает KeyDown и KeyUp. Что делать, чтобы заставить его работать?

Заранее спасибо.

С наилучшими пожеланиями Chudziutki

ответ

1

Почему вы делаете все это работать самостоятельно? Просто отправьте свое сообщение -enterFullScreenMode:withOptions:.

+0

Я не использую это, потому что я не могу установить уровень окна «NSPopUpMenuWindowLevel-1». Я пытаюсь установить это с помощью опций «NSFullScreenModeWindowLevel» или после использования этой функции setLevel, но обе эти функции не работают. – Chudziutki

1

Вам необходимо переопределить класс NSWindow своим собственным классом, который наследуется от NSWindow. Затем вы переопределяете сообщения о событиях keyDown и keyUp для их захвата. Затем вы передаете эти события тем, кто в них нуждается.

+2

Да, я должен переопределить NSWindow, но нужно только установить - (BOOL) canBecomeKeyWindow {return YES; }. Большое спасибо, чтобы показать направление :). – Chudziutki

Смежные вопросы