我的应用程序被配置为显示在所有空间上并监听mouseEntered事件,以便自己订购到前端。
问题是当另一个应用程序处于全屏模式,用户碰巧将鼠标移动到我应用程序的窗口所在的黑色区域时,会被带到前面(发生在多个显示器上)。
我只看过上面的行为[self setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces];启用。
这里是我应用程序的其他相关代码。
- (voID) mouseEntered:(NSEvent *)theEvent{ // Don't do this when another app is in full screen mode: [[self window] orderFront:self];}解决方法 嗯,你排除了使用applescript / scriptingbrIDge吗?您可以从applescript获取窗口的大小,并将其与屏幕的大小进行比较。 (或者您不知道某个应用程序的屏幕是什么?)
可访问的某些应用程序在其窗口上将具有“AXFullScreen”属性。例如,这适用于某些应用程序:
tell application "System Events" tell process "Pages" repeat with myWin in windows get value of attribute "AXFullScreen" of myWin end repeat end tell end tell
真正的行动似乎在碳排放… Macwindows.h和CarbonEvents.h中引用了“FullScreen”。
你会需要研究这个。
总结以上是内存溢出为你收集整理的可可 – Mac OS X Lion:检测另一个应用程序是否以全屏模式运行?全部内容,希望文章能够帮你解决可可 – Mac OS X Lion:检测另一个应用程序是否以全屏模式运行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)