我需要启动一个程序,该程序将在用户预先定义的时间间隔内打开并带来一个(最好看起来很好看)样式窗口,要求用户填写一些细节。我写了一些普通的可可应用程序,但这似乎需要一些我没有的额外知识(:我从哪里开始?
(在任何人感到不安之前,我可能想让人们感到烦恼,应用程序的目的是创建我们工作中的OS / X版本,允许用户请求提醒他们填写他们的考勤卡/ /在用户可配置的时间段内报告)
我能想象的最接近的是咆哮。
答案 0 :(得分:3)
您有几个选择。像smorgan一样,launchd
对此非常有效。您的另一个(相对简单的)选项是将您的应用程序添加到用户的登录项列表中。请查看this StackOverflow问题,了解有关如何执行此操作的详细信息。我实际上在应用程序中使用它来安装一个小助手,它运行得很好。然后,您的应用程序将使用NSTimer
(或适用于您的应用程序的其他类型的通知)来确定何时显示窗口。
如果您希望隐藏程序,除非窗口可见,您还可以考虑将其设为LSUIElement
。基本上,您将LSUIElement
键添加到Info.plist
文件中,当您运行该程序时,它将没有菜单栏和停靠栏图标。实际显示窗口时,用户只能看到用户界面。
如果将这两者结合使用,则会有一个应用程序在用户登录时启动(您也可以根据需要手动启动它),并且只在需要时显示一个窗口。
答案 1 :(得分:2)
假设您可以定位10.5及更高版本,launchd可让您定期轻松启动应用程序。然后,您可以使应用程序正常获取用户信息,而不必担心自己保持运行。
如果您的目标是10.4,请不要使用launchd,因为启动代理在10.5之前一直非常破碎。