【发布时间】:2011-03-17 13:10:33
【问题描述】:
[Number.editable = NO];
[Number resignFirstResponder];
[Password.editable = NO];
[Password resignFirstResponder];
我收到了错误
在非结构或联合的情况下请求成员“可编辑”
:S
谢谢
【问题讨论】:
标签: iphone objective-c uitextfield
[Number.editable = NO];
[Number resignFirstResponder];
[Password.editable = NO];
[Password resignFirstResponder];
我收到了错误
在非结构或联合的情况下请求成员“可编辑”
:S
谢谢
【问题讨论】:
标签: iphone objective-c uitextfield
首先,如果您不发送消息,则不需要[...]。
Number.editable = NO;
[Number resignFirstResponder];
Password.editable = NO;
[Password resignFirstResponder];
但这不是错误的原因。 The .editable property 只为 UITextView 定义,而不是 UITextField。您应该为 UITextField 设置 the .enabled property(注意 UITextField 是 UIControl)。
Number.enabled = NO;
...
【讨论】:
另外,您可以使用委托方法。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
return NO;
}
这样就行了,我更喜欢这种方法而不是设置 textField.enabled = YES,因为在应用程序的生命周期中编辑能力可能会发生变化。
【讨论】:
从 shouldChangeCharactersInRange 返回 NO 会是更好的选择,因为如果文本长于文本字段宽度,则上述解决方案会出现问题,因为用户将无法看到所有文本(即隐藏在文本字段宽度之外的文本)
【讨论】:
textField.userInteractionEnabled = NO;
希望这会有所帮助..
【讨论】: