0
我正在使用this guide進行測試全屏應用程序。但是,當我想要獲得重要輸入時,我遇到了一個問題。全屏按鍵操作
出於某種原因,您似乎在設置NSPanel佔用屏幕時,也失去了獲取按鍵事件的能力。當用戶鍵入s
時,我嘗試做出按鈕觸發,在常規面板中可以正常工作,但在應用此更改時應用 時似乎不起作用。
我正在使用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];
}
哈利喬丹: 我使用NSPanel,因爲這是它說在一個關於全屏應用程序的教程做的。 :)在這種情況下使用NSWindow會更好嗎?不知道我的應用是否使用標準用戶界面,但我不相信它。那麼,在這種情況下,我是否只需要將canBecomeKeyWindow子類並使這兩個-acceptsFirstResponder方法返回TRUE? – PF1 2009-07-04 19:39:22