启用未启用用户交互的文本



我有一个带有电话号码的文本字段。它不应进行编辑,但是用户应该可以长时间按手机来选择它。当他长时间按文本应该被选中时,而不仅仅是复制到剪贴板上。到目前为止,我只能与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上显示文本(不应该可以编辑),请使用UILabelUITextView

您可以将UITextViewisEditable属性设置为false,只要将isSelectable设置为true,它仍然可以选择。

a UILabel显示仅阅读文本,因此您甚至不需要在使用它时处理禁用编辑。

最新更新