2010-11-27 92 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 2010-11-28 09:56:08

1

您需要用繼承自NSWindow的自己的類覆蓋NSWindow類。然後重寫keyDown和keyUp事件消息以捕獲它們。然後,您將這些事件傳遞給需要它們的人。

+2

是的,我必須重寫NSWindow,但只需要設置 - (BOOL)canBecomeKeyWindow {return YES; }。非常感謝,展現方向:)。 – Chudziutki 2010-11-29 21:33:45