启用选择文本而不启用用户交互

时间:2017-08-31 12:39:14

标签: swift uitextfield user-interaction

我有一个带有电话号码的文本字段。它不应该被编辑,但用户应该能够通过长按手机来选择它。当他长按文字应该被选中,而不仅仅是复制到剪贴板。到目前为止,我只能使用它来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
}

1 个答案:

答案 0 :(得分:0)

出于您的目的,UITextField不是合适的选择。作为documentation州,UITextField是(我强调的):

  

在界面中显示可编辑文本区域的对象。

因此,您无法将UITextField设置为不可编辑。如果您想要在用户界面上显示不可编辑的文字,请使用UILabelUITextView

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

UILabel显示只读文字,因此您甚至不需要在使用时停止编辑。