设置 UITextField 不可编辑或可编辑

Setting UITextField not editable or editable

我想知道如何禁用 UITextField,即出于设计目的,我在 UITextField 的框架中放置了一个 UIButton

当我在 UITextField 中点击我的按钮时,键盘出现,但我不想显示键盘!

到目前为止,这是我的代码:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    return textField !=textfiled1;
    return textField !=textfiled2;
}

您可以借助以下方法实现此目的: 如果你想禁用编辑,你可以这样做 textField.editable = NO;

如果你想让它再次可编辑,你可以这样做
textField.editable = YES;

使用下面的属性.

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

你也可以用这个

您可以使用此 属性:

在文本字段上启用或禁用用户交互
textField.userInteractionEnabled = NO;

在Swift5

textField.isUserInteractionEnabled = false

我认为你的 UIButton 不在 UITextField 上。所以 bringToFromView 首先调用 UIButton 选择器方法。因为编译器在层次结构中检查 Event。如果首先控制响应事件,那么它不会寻找下一个。

我已经测试了你的方案,在我这边它工作正常。

在 Swift 4 中接受的答案:

textField.isUserInteractionEnabled = false

swift 我的 Obj-C 答案版本

   func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        return false
    }