2012-08-15 33 views
1

我有一个UISwitch,除其他外,巫婆禁用UITextfield。 使用时NSUserDefaults的,我管理的交换机要记住其当前状态(开/关)textfield setEnabled with NSUserDefaults

[[NSUserDefaults standardUserDefaults] 
    setBool:[sender isOn] 
    forKey:MyPrefKey]; 

但如何记住textfiled启用? 使用“setBool”是不可能的,我不知道如何使用setObject。

[[NSUserDefaults standardUserDefaults] 
     setObject:[textField setEnabled:NO] 
     forKey:MyPrefKey]; 

不起作用。

回答

1

为什么使用setBool出了问题?

要么应该工作,但是你应该记住同步的用户默认设置:

[[NSUserDefaults standardUserDefaults] synchronize]; 

另外,在你的第二个例子中有错误,你应该将标志设置为[textField isEnabled],而不是setEnabled:NO,因为这个回报无效。你也试图通过一个原始的BOOL,它应该包装在一个NSNumber作为一个对象存储

[[NSUserDefaults standardUserDefaults] 
     setObject:[NSNumber numberWithBool:[textField isEnabled]] 
     forKey:MyPrefKey]; 
[[NSUserDefaults standardUserDefaults] synchronize];