简单的方法来禁用UITextField?

CC.*_*CC. 43 iphone uitextfield ios

是否有一种简单的方法来禁用UITextField代码?

我的应用程序有12个UITextField默认情况下全部打开,但是当我的细分控制中检测到更改时,我想禁用其中一些,UITextField具体取决于用户选择的细分.

只需要知道如何禁用它或使其不可编辑?

谢谢

Joe*_*vin 106

在Objective-C中:

textField.enabled = NO;
Run Code Online (Sandbox Code Playgroud)

在Swift中:

textField.isEnabled = false
Run Code Online (Sandbox Code Playgroud)

参考:UIControl.isEnabled

  • 如果你曾经试图找出*if*它的启用,请记住getter是textField.isEnabled,而不是textField.enabled. (6认同)

Mar*_* B. 29

如果您还想表明文本字段已禁用,则应添加更多代码:

如果使用UITextBorderStyleRoundedRect,则只能使文本变灰:

textField.enabled = NO;
textField.textColor = [UIColor lightGrayColor];
Run Code Online (Sandbox Code Playgroud)

如果使用任何其他样式,您也可以灰显背景:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Run Code Online (Sandbox Code Playgroud)


Ank*_*ain 11

当你有多个文本字段时,这将是最简单的:

在viewDidLoad中:(仅为不应编辑的文本字段设置委托.

self.textfield.delegate=self;
Run Code Online (Sandbox Code Playgroud)

并插入此委托函数:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}
Run Code Online (Sandbox Code Playgroud)

而已!