在mac osx中,大多數應用程序都保留停靠圖標。 但是,如果相同應用程序的開發人員想要隱藏停靠欄圖標,那麼他如何隱藏它?以不同方式在Mac OSX中禁用應用程序的停靠欄圖標
作爲一名開發人員,我知道'Info.plist'屬性文件是一種隱藏應用程序的停靠欄圖標的方法。
但是我們還有其他解決方案嗎?
我希望應該有一些其他的方式大家都知道「有N對問題的解決方案的方式沒有」
在此先感謝
米@ k4mac
在mac osx中,大多數應用程序都保留停靠圖標。 但是,如果相同應用程序的開發人員想要隱藏停靠欄圖標,那麼他如何隱藏它?以不同方式在Mac OSX中禁用應用程序的停靠欄圖標
作爲一名開發人員,我知道'Info.plist'屬性文件是一種隱藏應用程序的停靠欄圖標的方法。
但是我們還有其他解決方案嗎?
我希望應該有一些其他的方式大家都知道「有N對問題的解決方案的方式沒有」
在此先感謝
米@ k4mac
的信息。 plist解決方案是從Dock中隱藏圖標的唯一方法(對於GUI應用程序)。
你想完成什麼?也許有一個解決方案可以解決,如果你提供更多的細節。
如果您正在開發應用程序,您希望在Info.plist中將LSUIElement設置爲TRUE。
如果你是正在運行該應用程序,你可以使用像Dockless這樣的程序。
如果你想多餘的選項,使用Linux :)
這LSUIElement方法是在10.8
不再起作用添加Carbon.framework 化妝的plist應用程序代理(的UIElement)= 1檢查
// this should be called from awakeFromNib method
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"LaunchAsAgentApp"])
{ ProcessSerialNumber psn = { 0, kCurrentProcess };
// display dock icon
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
// enable menu bar
SetSystemUIMode(kUIModeNormal, 0);
// switch to Dock.app
[[NSWorkspace sharedWorkspace] launchAppWithBundleIdentifier:@"com.apple.dock" options:NSWorkspaceLaunchDefault additionalEventParamDescriptor:nil launchIdentifier:nil];
// switch back
[[NSApplication sharedApplication] activateIgnoringOtherApps:TRUE];
}
爲什麼你應該作爲應用程序開發人員能夠控制用戶的碼頭? – 2011-03-04 13:00:06
@Cody Gray:某些應用程序被設計爲在後臺運行,而不是在Dock中顯示它們的圖標。 – mipadi 2011-03-04 17:16:22
@mipadi:啊,我的意思不是通過'Info.plist',專門用來解決這個用例。 – 2011-03-05 13:19:08