设置 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;
【讨论】:
我认为您将UITextView
与 UITextField
混淆了。以上是关于设置 UITextField 不可编辑或不可编辑的主要内容,如果未能解决你的问题,请参考以下文章