【问题标题】:Setting UITextField not editable or editable设置 UITextField 不可编辑或不可编辑
【发布时间】: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;
}

【问题讨论】:

标签: ios objective-c 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 混淆了。
          猜你喜欢
          • 2011-03-17
          • 1970-01-01
          • 1970-01-01
          • 2019-03-02
          • 2015-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-04
          相关资源
          最近更新 更多