3

我正在尝试获得一个非常基本的 Web 浏览器,其中包含 3 个 Web 视图(2 个隐藏,1 个始终可见)。

我想通过按 CMD+1、CMD+2、CMD+3 在这 3 个网页视图之间切换。

我创建了一个基本的 Cocoa 应用程序,在其中添加了 3 个 webview,引用了 Webkit 框架,并且我已经启动并运行它,这部分正在工作。

现在我想知道:

1)如何捕捉关键事件?看起来太复杂了,浏览事件结构文档让我头疼。

[咆哮]从做过很多 Windows 窗体、GTK、QT 和 Java/C#/C++ 工作的人看来,XCode 通过移动所有内容并创建 3 种不同的方式来实现相同的事情等,似乎每个版本都变得更糟。每次我必须使用它,就像我必须重新学习所有东西一样。[/rant]

2)如何具体捕捉 CMD+NUMBERS ?

这只是为了我正在构建的与 JIRA(项目管理)结合使用的快速生产力应用程序。

如果有人能指出我正确的方向,我将不胜感激。

每次我偶然发现一个好的教程时,它已经过时了,或者是用于 iOS 开发的,大部分时间不再使用与 OS X 相同的 API。

对咆哮感到抱歉,感谢您的帮助!

4

2 回答 2

2

您要覆盖的是NSResponder 方法 " keyDown:",我建议您将 " " 子类化WebView并创建自己的 " keyDown" 方法(但请确保[super keyDown: theEvent]在您的实现中的某处调用 " " )。

现在,在您的“ keyDown”实现中,要查找command键,“ NSEvent”对象响应modifierFlags”方法,其中一个标志是“ NSCommandKeyMask”。

例如:

NSUInteger flags = [theEvent modifierFlags];
if( flags == NSCommandKeyMask ){
    // Got it!
}
于 2013-05-27T00:07:48.607 回答
0

不要担心他们是什么样的观点。将每个选项卡放在 NSTabView 的选项卡中,显示或不显示选项卡控件。

使用选项卡控制,在 IB 中为每个选项卡设置所需的组合键。

无论有没有它,在菜单栏中的菜单中为每个具有相同组合键的选项卡创建一个菜单项。这是很久以前推荐的方式。Apple 建议为具有键盘快捷键的所有内容添加菜单栏菜单项。菜单栏将首先接收键。

于 2013-05-27T00:43:17.307 回答