0
我做了一個NSViewController的實例,並將它作爲子視圖添加到主窗口的內容視圖中。我希望能夠捕獲鍵盤事件,但我不知道如何實現它。經過一番研究,我瞭解到我需要在NSViewController中實現acceptsFirstResponder
和keyUp:event:
和keyDown:event:
方法,但在此之後,我仍然沒有工作的事情。keyup keydown方法NSViewController
- (void)applicationDidFinishLaunching:(NSNotification*)aNotification {
/* GViewController subview of NSViewController */
GViewController *g = [[GViewController alloc] initWithNibName:@"GViewController" bundle:nil];
[contentView addSubview: g];
}
值得一提的是,與窗口控制器相反,視圖控制器不會自動添加到響應器鏈中。 – 2011-05-28 23:01:58
這不完全正確。 NSViewController實現了acceptFirstResponder,keyUp:和keyDown :. NSViewController和NSView都是從NSResponder派生而來的,NSResponder是這些方法所在的。但是,addSubview:應該被賦予NSView而不是控制器是正確的。而且,正如Bavarious所說,這隻有在NSViewController已被添加到響應者鏈中時纔會起作用。 – 2013-05-14 19:40:23