我创建了一个NSViewController实例,并将其作为子视图添加到主窗口的内容视图中。我希望能够捕获键盘事件,但我不知道如何实现it.After一些研究,我了解到我需要在NSViewController中实现acceptsFirstResponder和keyUp:event:和keyDown:event:方法,但在那之后我仍然没有工作。
- (void)applicationDidFinishLaunching:(NSNotification*)aNotification {
/* GViewController subview of NSViewController */
GViewController *g = [[GViewController alloc] initWithNibName:@"GViewController" bundle:nil];
[contentView addSubview: g];
}发布于 2011-05-29 02:16:06
这些方法必须出现在NSView的子类中,而不是NSViewController中。使用addSubview:someViewController也没有任何意义;该方法的参数必须是视图。
发布于 2019-05-06 18:15:04
override func keyDown(with event: NSEvent) {
super.keyDown(with: event)
Swift.print("Caught a key down: \(event.keyCode)!")
}在swift中,你可以在keyDown -c中尝试同样的方法。查看官方文档https://developer.apple.com/documentation/appkit/nsresponder/1525805-keydown?language=objc
https://stackoverflow.com/questions/6163154
复制相似问题