我不确定我是否完全跟随你。
但我认为您不需要编辑 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
}
为了获得更好的答案,您需要更清楚地解释一下。