在给定时间显示全屏图像的后台可可应用程序/实用程序
我想为 Mac OS X 编写一个应用程序。该应用程序/实用程序将根据预设的时间表运行。我希望这个应用程序以不同的时间间隔全屏显示某个图像,以确定当时是否有其他应用程序在运行。
真正的问题是如何在后台检查这个时间间隔并将这个应用程序放在前面并进入全屏。我知道如何全屏显示,但我坚持将这个应用程序放在所有其他应用程序的前面。
I want to write an app for Mac OS X. The app/utility would act according to preset schedule. I will have different time intervals at which I want this app to show a certain image in full screen regarding if there are other apps running at the time.
The real question is how to check this time interval in the background and bring this app in-front and enter full screen. I know how to go full screen, but I am stuck at bringing this app in-front of all other apps.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要安排在某个时间间隔后调用一个方法,只需使用
NSTimer
及其+scheduledTimer...
方法之一。要强制应用程序处于活动状态,请调用
[NSApp activateIgnoringOtherApps:YES]
。如果您希望窗口绝对显示在所有内容(包括屏幕保护程序)之上,请将其级别设置为
NSScreenSaverWindowLevel + 1
。To schedule a method to be called after an interval, just use
NSTimer
and one of its+scheduledTimer...
methods.To force your application to be active, call
[NSApp activateIgnoringOtherApps:YES]
.If you want your window to appear above absolutely everything, including the screensaver, set its level to
NSScreenSaverWindowLevel + 1
.立即想到的唯一解决方案是使用 AppleScript,例如,如果您从应用程序中执行以下 AppleScript:
有一个 Apple 技术说明,其中包含使用
NSAppleScript
从 Cocoa 应用程序发送 AppleScript 的示例代码。The only solution that comes immediately to mind is use AppleScript, e.g. if you execute the following AppleScript from within your app:
There is an Apple Tech Note with sample code for sending AppleScript from a Cocoa app using
NSAppleScript
.如何强制 Mac 窗口到前台?
How to force Mac window to foreground?