私はあなたを完全にフォローしているかどうか確信が持てません。
しかし、plist.Info を編集する必要はないと思いますし、それを行うのは良くないと思います。
アプリの設定ファイルに書き込みCFPreferencesSetValue
、アプリがアイコンを変更するかどうかを決定するエントリを変更するだけです。
あなたの引数チェックから行われた呼び出し:
[self changIcon:(CFBooleanRef)false];
-(void) changIcon:(CFBooleanRef)prefValue
{
CFStringRef appID = CFSTR("com.yourApp.BundleID");
CFStringRef Key = CFSTR("swapIcon");
CFBooleanRef Value = prefValue ;// kCFBooleanTrue;//or kCFBooleanFalse
// Set up the preference.
CFPreferencesSetValue(Key,
Value,
appID,
kCFPreferencesCurrentUser,
kCFPreferencesAnyHost);
// Write out the preference data.
CFPreferencesSynchronize(appID,
kCFPreferencesCurrentUser,
kCFPreferencesAnyHost);
}
アイコンを変更する
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
BOOL swapIcon = [defaults boolForKey:@"swapIcon"];
if (swapIcon ) {
NSImage * b1Image = [NSImage imageNamed:@"bl1"];
[NSApp setApplicationIconImage:b1Image];
}else {
[NSApp setApplicationIconImage:nil];//--Nil will make the app use thenormal icon
}
より良い答えを得るには、もう少し明確に説明する必要があります。