开发者

Is it possible to show the dock icon when a new Window is called?

开发者 https://www.devze.com 2023-04-08 17:26 出处:网络
I have an app that\'s shown as a Menu on the Status Bar, so I switched the \"Application is agent (UIEl开发者_如何学JAVAement)\" in plist to YES (because I dont want an icon on the dock just for a Men

I have an app that's shown as a Menu on the Status Bar, so I switched the "Application is agent (UIEl开发者_如何学JAVAement)" in plist to YES (because I dont want an icon on the dock just for a Menu on the Status Bar), but when I click an Item on the Menu a new window is called, is it possible to make a dock icon appear for that window? and disappear when the window is closed?


You will need to create a separate application binary/bundle to display that window. There is no supported way for an application to cause a Dock icon to be displayed on anything other than a per-process basis, or to dynamically hide/show the Dock icon while it's running.


You can show and hide the Dock icon of an application with NSRunningApplication+DockIcon but beware, this code uses undocumented APIs.


To set your application to be a foreground application, which causes its icon to appear in the Dock, and the app to appear in the Cmd+Tab list:

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

And to change it back again:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号