繁体   English   中英

如何关闭NSWindow并从停靠菜单中删除应用程序图标

[英]How to close NSWindow and remove the application Icon from dock menu, yet

如果你在MacBook上使用DropBox,你必须看到我们完成注册过程。 它会关闭主窗口应用程序并从dock项目中自行删除它,但应用程序正在从状态菜单运行。


视觉:

在此输入图像描述


到目前为止我做了什么:

  • 我的应用程序与show NSWindow完美运行
  • 当我从前面的应用程序窗口登录时,我可以使用popover创建一个状态菜单图标
  • 在此步骤中,我想删除NSWindow和Dock图标,但应该可以从状态菜单访问该应用程序。

怎么做到这一点?

仅供参考:我不期待任何代码,只是理解或快速提示。 我会弄明白其余的:)


我所指的资源,

稍后我将为launchd配置我的应用程序。 因此,在系统启动时,它可以启动并在状态菜单中自动显示。 现在我正在寻找一个好的资源(当然它很好,因为它的Apple Doc)但是因为我是一个天真的程序员,有没有人有一个很好的示例链接? 它展示了如何在推出中添加应用程序?

编辑:

我将按照本教程添加到启动中,以后用户可以根据需要更改自己的首选项,他们可以选择启用我的应用程序或启动时关闭

要仅将您的应用程序作为状态菜单运行,请将以下某个键添加到info.plist文件中:

Application is agent (UIElement)

要么:

Application is background only

至于在两者之间切换,我不确定最好的方法,但我建议将设置过程作为自己的应用程序。 (带有图标和窗口的应用程序)您可以在菜单项应用程序中包含应用程序,并在用户启动程序时自动启动它...

正如Teak所说,您希望info.plist中的“Application is agent(UIElement)”键。 这个键意味着您将没有停靠图标......这就是您想要的。 但是,不需要使用“Application is background only”键。 此键可以防止您在屏幕上放置任何窗口,这是不必要的。 所以我会把这把钥匙留下来。

通常设置您的应用程序,以便在启动时不会自动显示窗口。 在启动时进行某种检查以查看是否需要配置。 如果是,则使配置窗口可见。 您甚至可以在状态菜单中有一个“配置...”菜单项,这样您的用户就可以随时弹出配置窗口。 它真的很简单,但只是不要使用“Application is background only”info.plist键。

顺便说一下,让窗户走到前面有点困难。 诀窍是让你的应用程序首先像这样......

[NSApp activateIgnoringOtherApps:YES];
[someWindow makeKeyAndOrderFront:nil];

通常情况下,Dropbox示例中提到的情况使用两个单独的应用程序解决,一个用于菜单,一个用于另一个ui部分(具有提到的dock图标fe),并且两个进程通过fe ipc进行协作。

在一个应用程序中做同样的事情有点棘手,你可以在这里找到我的细节

Cocoa - 以编程方式转到前台/后台

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM