0

我正在使用本指南制作一个测试全屏应用程序。但是,当我想获得关键输入时,我遇到了问题。

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

4

1 回答 1

0

是有可能实现的。确保您的子类化NSPanel(是否有理由不使用窗口?)-canBecomeKeyWindow,以及面板及其返回 TRUEcontentView的方法。-acceptsFirstResponder

如果您正在设计使用非标准 UI(如游戏)的应用程序,您可以尝试的另一种较低级别的方法是子类化NSApplications -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];    
}
于 2009-07-02T18:18:28.227 回答