在我的 Cocoa/Objective-C 应用程序中,我有一个实用程序面板 float “始终在顶部”,即使我的应用程序未处于事件状态也可以访问。我正在尝试禁用“当用户单击该面板时切换到我的应用程序”。
我想要实现的行为类似于 OSX 的键盘查看器(它也是一个永不激活面板),因此其他一些应用程序在单击我的应用程序面板后仍保持事件状态。即 Safari 在使用键盘查看器键入地址时保持事件状态。甚至第三方屏幕键盘也具有此功能(例如来自 CORALLO Software 的键盘),这意味着此行为不是系统专用保留的。
我正在弄乱 NSApplicationActivationPolicy
,但没有得到积极的结果。我该往哪个方向走?
最佳答案
您应该看一下NSWindow
上的canBecomeKeyWindow
和canBecomeMainWindow
方法。听起来您希望窗口保持键 状态,但不能成为主 窗口。以下是一些可以帮助您的资源:
- Window Programming Guide - 解释主窗口和关键窗口之间的区别
-
NSWindow
class reference - 跳转到关于canBecomeKeyWindow
和canBecomeMainWindow
的部分
关于objective-c - 单击窗口禁用应用程序激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243332/