我想知道如何删除我的mac应用程序栏中的代理图标。我添加了一个图像,这样你就可以看到我正在谈论的图标
提前谢谢!
答案 0 :(得分:3)
当您创建基于NSDocument的应用程序时,该图标会自动包含在应用程序的标题栏中。
您可以从nil
方法返回-[NSWindow representedURL]
来删除代理图标。这可以通过使用自定义的NSWindow子类并重写该方法来实现;或者只是在适当的时候将属性设置为nil
。
请注意,您可能会通过更改此行为而放弃通常免费获得的其他功能,例如窗口的脏/清除指示器,或者在关闭窗口时提示保存。
或者,如果您想要不同的图像,可以使用:
[[NSWindow standardWindowButton:NSWindowDocumentIconButton] setImage:customImage]
然后实施-[id<NSWindowDelegate> window:shouldPopUpDocumentPathMenu:]
以返回NO
以阻止弹出菜单显示。
如果您的应用程序实际上不是基于文档的,或者窗口不代表文档,请考虑重构以不同的方式呈现此窗口,而不是文档窗口。
Cocoa window documentation中还有一些其他信息。