textfield setEnabled with NSUserDefaults

时间:2012-08-15 06:39:48

标签: ios uitextfield nsuserdefaults

我有一个UISwitch,其中包括,禁用UITextfield。 使用NSUserDefaults时,我管理开关以记住其当前状态(开/关)

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

但是如何记住textfiled已启用? 使用“setBool”是不可能的,我无法想象如何使用setObject。

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

不起作用。

1 个答案:

答案 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];