删除我的mac应用程序栏中的代理图标

时间:2011-08-28 12:00:48

标签: objective-c macos proxy-icon

我想知道如何删除我的mac应用程序栏中的代理图标。我添加了一个图像,这样你就可以看到我正在谈论的图标

enter image description here

提前谢谢!

1 个答案:

答案 0 :(得分:3)

当您创建基于NSDocument的应用程序时,该图标会自动包含在应用程序的标题栏中。

您可以从nil方法返回-[NSWindow representedURL]来删除代理图标。这可以通过使用自定义的NSWindow子类并重写该方法来实现;或者只是在适当的时候将属性设置为nil

请注意,您可能会通过更改此行为而放弃通常免费获得的其他功能,例如窗口的脏/清除指示器,或者在关闭窗口时提示保存。

或者,如果您想要不同的图像,可以使用:

[[NSWindow standardWindowButton:NSWindowDocumentIconButton] setImage:customImage]

然后实施-[id<NSWindowDelegate> window:shouldPopUpDocumentPathMenu:]以返回NO以阻止弹出菜单显示。

如果您的应用程序实际上不是基于文档的,或者窗口不代表文档,请考虑重构以不同的方式呈现此窗口,而不是文档窗口。

Cocoa window documentation中还有一些其他信息。