将UITextField设置为不可编辑 - 目标C.

时间:2010-07-18 10:13:14

标签: iphone objective-c uitextfield

    [Number.editable = NO];
    [Number resignFirstResponder];
    [Password.editable = NO];
    [Password resignFirstResponder];

我收到错误

请求成员'可编辑'的东西不是结构或联合

:S

由于

4 个答案:

答案 0 :(得分:28)

首先,如果您没有发送消息,则不需要[...]

Number.editable = NO;
[Number resignFirstResponder];
Password.editable = NO;
[Password resignFirstResponder];

但这不是错误的原因。 The .editable property仅为UITextView定义,而不是UITextField。你应该为UITextField设置the .enabled property(注意UITextField是一个UIControl)。

Number.enabled = NO;
...

答案 1 :(得分:18)

此外,您可以使用委托方法。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
  return NO;
}

这样就可以了,我更喜欢这种方法而不是设置textField.enabled = YES,因为在应用程序的生命周期中,编辑能力可能会发生变化。

答案 2 :(得分:6)

textField.userInteractionEnabled = NO;

希望这会有所帮助..

答案 3 :(得分:0)

从shouldChangeCharactersInRange返回NO将是更好的选择,因为如果文本长于文本字段宽度,那么上面的解决方案将给出问题,因为用户不能看到所有文本(即文本隐藏在文本字段宽度之外)