我正在開發一個項目,該項目需要在運行時更改App圖標。我已將default_icon.icns設置爲默認App圖標。在Mac OSX中,應用程序圖標在運行時未更改10.9.4
現在,當我想更改App圖標時,我在Appdelegate.m類中使用了下面的代碼片段。
NSString *iconPath = @「 ICON_PATH/new_icon_file.png 」;
NSImage *icon =[[NSImage alloc] initWithContentsOfFile:iconPath];
if (icon != nil)
{
NSLog(@「Changing App icon");
[NSApp setApplicationIconImage:icon];
}
當我在10.9.4 OSX上運行此項目時,App圖標在運行時不會改變,直到我重新啓動我的Mac機器。 重新啓動mac機器後,應用程序default_icon被替換爲new_icon_file。
但上面的代碼片段工作正常,直到10.8 Mac OSX,沒有必要重新啓動Mac機,並執行「[NSApp setApplicationIconImage:icon]」代碼行。將default_Icon替換爲new_icon_file。
如果在運行時更改應用程序圖標上面的代碼段有任何問題,請糾正我?或者,有沒有其他方法可以在10.9 Mac OSX的運行時更改AppIcon?
謝謝。
不會改變它在頂部的
- (BOOL)setIcon:(NSImage *)image forFile:(NSString *)fullPath options:(NSWorkspaceIconCreationOptions)options
例子碼頭?該方法是不是改變它在發現者,但只在碼頭 – 2014-09-10 12:41:08
@ Daij-Djan我不想在碼頭上顯示應用程序圖標,所以我設置爲應用程序是代理(UIElement)在info.plist。 但它在10.8或更早版本的OSX上工作。 – varun 2014-09-10 12:57:06
刪除xcode標籤,因爲它不是IDE特定的 – 2014-09-10 14:43:23