-2
我已創建簡單可可應用程序。我在其中使用NSOutlineView。現在我的任務是按下Esc鍵的事件。在我的appdelegate.m我實現了所有需求方法爲NSOutlineView。如何檢測在NSOutlineView中按Escape鍵?
我已創建簡單可可應用程序。我在其中使用NSOutlineView。現在我的任務是按下Esc鍵的事件。在我的appdelegate.m我實現了所有需求方法爲NSOutlineView。如何檢測在NSOutlineView中按Escape鍵?
子類的NSOutlineView拍下下來的關鍵事件爲:
- (void)keyDown:(NSEvent *)theEvent
{
switch([theEvent keyCode])
{
case 53: // esc
NSLog(@"ESC");
// Implement the functionality you want when esc is pressed
break;
default:
[super keyDown:theEvent];
}
}
那麼你可以找出whther退出鍵被按下或不試試下面一行,並在你的方法用在需要下列條件: -
NSUInteger flags = [theEvent keycode];
//After that
If (flags==53)
{
NSlog(@"Escape key pressed");
}
Thanx。我通過對nsoutlineview進行分類來了解這種方式。但我只想使用Appdelegate.m。我也試過用NSControlTextDidChangeNotification。當textfield不是空白時,這給了我逃跑事件。當文本字段爲空/空白時,所有這些都是徒勞的。 –
在這種情況下,您可以嘗試通過註冊全局keydown事件,檢查按下的按鍵是否是Esc,並且您的應用程序是最前面的。如果是的話,那麼實現你的功能。 – Neha
你可以註冊全局鍵事件:[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent * event){//你的代碼在這裏}]; – Neha