全屏按键操作

问题描述:

我正在使用this guide进行测试全屏应用程序。但是,当我想要获得重要输入时,我遇到了一个问题。全屏按键操作

出于某种原因,您似乎在设置NSPanel占用屏幕时,也失去了获取按键事件的能力。当用户键入s时,我尝试做出按钮触发,在常规面板中可以正常工作,但在应用此更改时应用 时似乎不起作用。

有可能实现。确保你的子类NSPanel的(是否有一个原因,你为什么不使用窗口?)-canBecomeKeyWindow,以及面板和它的contentView-acceptsFirstResponder方法返回TRUE。

如果您正在设计使用非标准UI(如游戏)的应用程序,则可以尝试的另一种较低级别的方法是子类NSApplication的-sendEvent方法。矿山看起来像:

- (void)sendEvent:(NSEvent *)event 
{ 
    id delegate = [self delegate]; 

    if(([event type] != NSAppKitDefined) && [delegate shouldHandleEvents] && [delegate respondsToSelector:@selector(handleEvent:)]) 
     [delegate handleEvent:event]; 
    else 
     [super sendEvent:event];  
} 
+0

哈利乔丹: 我使用NSPanel,因为这是它说在一个关于全屏应用程序的教程做的。 :)在这种情况下使用NSWindow会更好吗?不知道我的应用是否使用标准用户界面,但我不相信它。那么,在这种情况下,我是否只需要将canBecomeKeyWindow子类并使这两个-acceptsFirstResponder方法返回TRUE? – PF1 2009-07-04 19:39:22