|
5
|
| Kristof Van Landschoot · 技术社区 · 17 年前 |
|
|
1
3
有两种选择:
编辑: 请注意,只有在“通用访问首选项”窗格中勾选“启用辅助设备的访问”时,这些方法才有效。 |
|
|
2
1
一个可能对你更有效的简单方法是只让你的应用程序成为背景。关于电力系统共载的讨论 LSUIElement plist key解释了如何设置它。基本上,您的应用程序不会出现在dock或应用程序切换器中,并且在激活时不会替换当前应用程序的菜单栏。从用户的角度来看,它从来不是“活动”应用程序,但您打开的任何窗口都可以被激活并正常响应事件。唯一需要注意的是,您永远无法显示菜单栏,因此您可能需要设置NSStatusItem(菜单栏右侧显示的图标菜单之一)来控制应用程序(即退出、调出prefs等)。 编辑:我完全忘记了Interface Builder中的非激活面板复选框。您需要使用NSPanel而不是NSWindow来获得此选择。此设置允许面板接受点击和键盘输入,而无需激活应用程序。我敢打赌,QuickSilver在用户界面上使用的是这种设置和Carbon热键API的某种混合。 |
|
3
0
更新:
现在,如果启用了根设备或辅助设备,无论您计划在哪个级别捕获,也不管您选择了捕获(允许您修改甚至丢弃事件)还是仅侦听,您都只能捕获按键事件设置事件点击。当标志发生更改(实际上甚至更改了这些标志)和其他事件时,您仍然可以获取信息,但在其他情况下都不能按下键。 但是,使用carbon事件处理程序和RegisterEventHotKey()方法可以注册热键,按下热键时会收到通知,您不需要成为该热键的root用户,也不需要启用任何类似辅助设备的功能。我认为Quicksilver可能就是这样做的。 |
|
|
KanKonga · 为什么这个swift代码没有显示在文本字段中? 3 年前 |
|
|
Community wiki · 目标的Xcode构建阶段的自动更新? 3 年前 |
|
|
Anton Timonin · 如何正确地将动态pod库更改为静态? 3 年前 |
|
|
Igor · 在OSX中,捆绑包的用户首选项在哪里? 3 年前 |
|
|
narner · 从Swift包创建Cocoapods框架 3 年前 |