objective-c - 单击窗口禁用应用程序激活

标签 objective-c cocoa window floating

在我的 Cocoa/Objective-C 应用程序中,我有一个实用程序面板 float “始终在顶部”,即使我的应用程序未处于事件状态也可以访问。我正在尝试禁用“当用户单击该面板时切换到我的应用程序”。

我想要实现的行为类似于 OSX 的键盘查看器(它也是一个永不激活面板),因此其他一些应用程序在单击我的应用程序面板后仍保持事件状态。即 Safari 在使用键盘查看器键入地址时保持事件状态。甚至第三方屏幕键盘也具有此功能(例如来自 CORALLO Software 的键盘),这意味着此行为不是系统专用保留的。

我正在弄乱 NSApplicationActivationPolicy,但没有得到积极的结果。我该往哪个方向走?

最佳答案

您应该看一下NSWindow 上的canBecomeKeyWindowcanBecomeMainWindow 方法。听起来您希望窗口保持 状态,但不能成为 窗口。以下是一些可以帮助您的资源:

关于objective-c - 单击窗口禁用应用程序激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243332/

相关文章:

ios - 解释 iOS7 中自动调整 ScrollView 插入、扩展布局包含不透明条、边缘ForExtendedLayout 之间的区别

objective-c - Objective c NSTimer 间隔时间设置

objective-c - NSWorkspace共享工作空间运行应用程序导致内存泄漏;另一种选择?

java - 单击按钮打开新屏幕或页面(java-eclipse)

python - Tkinter - 在使用任何小部件之前最大化和最小化窗口,在我使用它们时隐藏小部件

objective-c - 围绕中心旋转 NSView

ios - 应用程序被杀死时删除钥匙串(keychain)

ios - 静态单元格内的 UITableView

objective-c - 我可以阻止 Spotlight NSMetadataQuery 吗?

.NET WPF 窗口淡入淡出动画