我在所有其他窗户上使用自定义无边框NSWindow.我禁用光标以绘制自己的选择矩形.
我的问题是,只要我点击&拖动以捕获屏幕截图,我的应用程序被激活(因为点击被我的屏蔽窗口截获).
有没有办法在我的自定义视图/窗口中接收点击而不启动我的应用程序?
我尝试使用带有NSNonactivatingPanelMask标志的NSPanel,但在这种情况下,我有一个光标问题:当另一个应用程序处于活动状态时,我无法绘制自己的,因为我无法隐藏其他应用程序的光标…
解决方法 实际上,我有一个新的,更好的答案,涉及更多无证件的好东西.这是为了未来的后代:NSWindow上有一个没有文档记录的方法,可以完全按照您的要求进行 *** 作:
@interface NSWindow (Private)- (voID )_setPreventsActivation:(bool)preventsActivation;@end[myWindow _setPreventsActivation:true];
这会阻止窗口在用户单击时激活自身及其应用程序.
关于使用未记录的API的标准警告当然适用:Apple可能会在某些时候改变它(虽然它已经存在许多OS X版本所以他们很可能不会这样做)并且使用它可能会使您的应用程序被Mac应用程序拒绝商店.
总结以上是内存溢出为你收集整理的macos – 单击NSWindow / NSView时阻止激活应用程序全部内容,希望文章能够帮你解决macos – 单击NSWindow / NSView时阻止激活应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)