我从 File->New 创建了一个 NSWindowController 的子类,并选中了“With XIB for user interface”选项。所以我创建了 3 个新文件。然后我使用 Interface Builder 将一个视图添加到窗口中。
并在 MyWindowController.m 中有此代码:
- (void)keyDown:(NSEvent *)theEvent{
NSLog(@"%@", theEvent);
}
- 首先测试,添加一个 NSButton,然后运行项目。
- 第二次测试,添加一个WebView(NSButton已删除),然后运行项目。
在这两个测试中,窗口都正确显示。但不同的是:
- (NSButton)当我按下“a”、“b”、...等键时,我可以看到日志输出,但不能看到 ESC 键
- (WebView)当我按下“a”、“b”、...等键以及 ESC 键时,我可以看到日志输出
我将 NSButton 更改为其他视图类型,以及我的自定义视图,都像第一种情况一样。
我的问题是:
- 为什么 NSWindowController 在第一种情况下不能捕获 ESC 键?
- 为什么 NSWindowController 以 WebView 作为第一响应者捕获 ESC 键。
- NSWindowController 如何在没有 WebView 的情况下捕获 ESC 键?