调用新窗口时是否可以显示停靠栏图标?

时间:2011-09-28 04:38:23

标签: objective-c xcode cocoa icons dock

我有一个在状态栏上显示为菜单的应用程序,所以我将plist中的“Application is agent(UIElement)”切换为YES(因为我不希望在Dock上的图标仅用于状态菜单Bar),但当我点击菜单上的一个项目时,会调用一个新窗口,是否可以为该窗口显示停靠图标?当窗户关闭时消失?

3 个答案:

答案 0 :(得分:1)

您需要创建一个单独的应用程序二进制文件/包来显示该窗口。应用程序没有受支持的方式可以使Dock图标显示在每个进程以外的任何其他位置,或者在Dock图标运行时动态隐藏/显示Dock图标。

答案 1 :(得分:0)

您可以使用NSRunningApplication+DockIcon显示和隐藏应用程序的Dock图标,但请注意,此代码使用未记录的API。

答案 2 :(得分:0)

要将您的应用程序设置为前台应用程序,从而使其图标显示在Dock中,并且该应用程序显示在Cmd + Tab列表中:

ProcessSerialNumber processSerialNumber = {0, kCurrentProcess};
TransformProcessType(&processSerialNumber, kProcessTransformToForegroundApplication);

然后再次将其更改:

ProcessSerialNumber processSerialNumber = {0, kCurrentProcess};
TransformProcessType(&processSerialNumber, kProcessTransformToUIElementApplication);