我有一个带有电话号码的文本字段。它不应该被编辑,但用户应该能够通过长按手机来选择它。当他长按文字应该被选中,而不仅仅是复制到剪贴板。到目前为止,我只能使用它来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
}
答案 0 :(得分:0)
出于您的目的,UITextField
不是合适的选择。作为documentation州,UITextField
是(我强调的):
在界面中显示可编辑文本区域的对象。
因此,您无法将UITextField
设置为不可编辑。如果您想要在用户界面上显示不可编辑的文字,请使用UILabel
或UITextView
。
您可以将UITextView
' isEditable
属性设置为false,只要isSelectable
设置为true,它仍然可以选择。
UILabel
显示只读文字,因此您甚至不需要在使用时停止编辑。