我有一个UISwitch,其中包括,禁用UITextfield。 使用NSUserDefaults时,我管理开关以记住其当前状态(开/关)
[[NSUserDefaults standardUserDefaults]
setBool:[sender isOn]
forKey:MyPrefKey];
但是如何记住textfiled已启用? 使用“setBool”是不可能的,我无法想象如何使用setObject。
[[NSUserDefaults standardUserDefaults]
setObject:[textField setEnabled:NO]
forKey:MyPrefKey];
不起作用。
答案 0 :(得分:1)
为什么不使用setBool
?
要么应该工作,但你应该记住同步用户默认值:
[[NSUserDefaults standardUserDefaults] synchronize];
同样在你的第二个例子中出现错误,你应该将标志设置为[textField isEnabled]
而不是setEnabled:NO
,因为这会返回void。您还尝试传入原始BOOL
,它应该包含在NSNumber
中以存储为对象
[[NSUserDefaults standardUserDefaults]
setObject:[NSNumber numberWithBool:[textField isEnabled]]
forKey:MyPrefKey];
[[NSUserDefaults standardUserDefaults] synchronize];