设置 UITextField 不可编辑或不可编辑

Posted

技术标签:

【中文标题】设置 UITextField 不可编辑或不可编辑【英文标题】:Setting UITextField not editable or editable 【发布时间】:2015-04-23 11:05:01 【问题描述】:

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

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

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

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

    return textField !=textfiled1;
    return textField !=textfiled2;

【问题讨论】:

Easy way to disable a UITextField?的可能重复 【参考方案1】:

您可以使用此属性启用或禁用文本字段上的用户交互:

textField.userInteractionEnabled = NO;

在 Swift 5 中

textField.isUserInteractionEnabled = false

【讨论】:

在 swift 5 中我使用这个:itemTextField.isUserInteractionEnabled = true @papesky 你不是说“=假”【参考方案2】:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
  return NO;
 

你也可以用这个

【讨论】:

此解决方案更可靠,因为禁用 userInteraction 可能会出现其他问题。【参考方案3】:

在 Swift 4 中接受的答案:

textField.isUserInteractionEnabled = false

【讨论】:

【参考方案4】:

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

我已经测试了您的方案,并在我的最后工作正常。

【讨论】:

【参考方案5】:

我的 Obj-C 答案的快速版本

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

【讨论】:

【参考方案6】:

使用以下属性。

textField.userInteractionEnabled = NO;

【讨论】:

【参考方案7】:

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

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

【讨论】:

我认为您将 UITextViewUITextField 混淆了。

以上是关于设置 UITextField 不可编辑或不可编辑的主要内容,如果未能解决你的问题,请参考以下文章

UITextField 和 UIButton 不可点击

使“UITextField”的某些部分不可选择

EXtjs 3.2:如何将特定单元格设置为不可编辑或只读?

jQuery设置文本框为不可编辑

Gridview中checkbox选择绑定字段时为啥是不可编辑的

java中如何把JTable设置为不可编辑