我有一个带有电话号码的文本字段。它不应进行编辑,但是用户应该可以长时间按手机来选择它。当他长时间按文本应该被选中时,而不仅仅是复制到剪贴板上。到目前为止,我只能与isUserInteractionEnabled == true
一起使用,但我仍然需要假。关于我如何做到这一点有什么建议?我的代码现在:
func longPress(_ longPressGestureRecognizer: UILongPressGestureRecognizer) {
self.cell?.textField.isUserInteractionEnabled = true
self.cell?.textField.becomeFirstResponder()
self.cell?.textField.selectedTextRange = self.cell?.textField.textRange(from: (self.cell?.textField.beginningOfDocument)!, to: (self.cell?.textField.endOfDocument)!)
//self.cell?.textField.isUserInteractionEnabled = false
}
出于您的目的,UITextField
不是一个合适的选择。如文档所述,UITextField
是我的强调):
一个显示可编辑文本区域的对象。
因此,您不能将UITextField
设置为不可编辑。如果您想在UI上显示文本(不应该可以编辑),请使用UILabel
或UITextView
。
您可以将UITextView
的isEditable
属性设置为false,只要将isSelectable
设置为true,它仍然可以选择。
a UILabel
显示仅阅读文本,因此您甚至不需要在使用它时处理禁用编辑。