【发布时间】:2014-10-24 06:10:17
【问题描述】:
我尝试了以下方法:
属性
enabled和“启用用户交互”;方法
textFieldShouldBeginEditing:。
但他们禁用了文本字段的所有可能操作。我只需要禁用编辑,但允许用户复制文本值。如何实现?
【问题讨论】:
标签: ios copy uitextfield editing isenabled
我尝试了以下方法:
属性enabled 和“启用用户交互”;
方法textFieldShouldBeginEditing:。
但他们禁用了文本字段的所有可能操作。我只需要禁用编辑,但允许用户复制文本值。如何实现?
【问题讨论】:
标签: ios copy uitextfield editing isenabled
这可能对您有所帮助。试试
YourTextField.editing = NO;
【讨论】:
除了tasuhka的回应,请确保
YourTextField.selectable = YES;
【讨论】:
实现并设置以下UITextFieldDelegate:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
return NO;
}
这使得该字段不可编辑,同时仍保留该选择/复制功能。 editing 属性是只读且不相关的。
【讨论】:
保持启用的属性和用户交互。否则您将无法选择文本。
将 UITextField 的委托设置为 ViewController 并实现:
斯威夫特:
func textField(_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
return false
}
【讨论】: