我正在尝试获得一个非常基本的网络浏览器,其中包含 3 个 Web View (2 个隐藏,1 个始终可见)。
我想通过按 CMD+1、CMD+2、CMD+3 在这 3 个网页 View 之间切换。
我创建了一个基本的 Cocoa 应用程序,在其中添加了 3 个 Web View ,引用了 Webkit 框架,我已经启动并运行它,这部分工作正常。
现在我想知道:
1) 如何捕获关键事件? 看起来太复杂了,浏览事件结构文档让我很头疼。
[咆哮]从做过很多 Windows 窗体、GTK、QT 和 Java/C#/C++ 工作的人看来,XCode 似乎在每个版本都变得更糟,因为它移动了所有东西并创建了 3 种不同的方法来实现同样的事情,等等.每次要用的时候就好像什么都要学一遍一样[/rant]
2)如何具体捕捉CMD+NUMBERS?
这仅适用于我正在构建的与 JIRA(项目管理)结合使用的快速生产力应用程序。
如果有人能指出我正确的方向,我将不胜感激。
每次我偶然发现一个好的教程,它已经过时或者是针对 iOS 开发人员的,大多数时候不再使用与 OS X 相同的 API。
对咆哮感到抱歉,感谢您的帮助!
最佳答案
您要覆盖的是 NSResponder method "keyDown:
" ,我建议做的是子类化“WebView
”并创建您自己的“keyDown
”方法(确保调用“[super keyDown: theEvent]
"不过在您的实现中的某处)。
现在,在您的“keyDown
”实现中,要查找command 键,“NSEvent
”对象会响应"modifierFlags
" method。其中一个标志是“NSCommandKeyMask
”。
例如:
NSUInteger flags = [theEvent modifierFlags];
if( flags == NSCommandKeyMask ){
// Got it!
}
关于objective-c - 在 NSWindow 中捕获关键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764798/