gpt4 book ai didi

objective-c - 在 NSWindow 中捕获关键事件

转载 作者:搜寻专家 更新时间:2023-10-30 20:19:25 24 4
gpt4 key购买 nike

我正在尝试获得一个非常基本的网络浏览器,其中包含 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com