UITextField没有响应点击

时间:2019-08-14 20:10:50

标签: ios swift uikit

当用户点击UITextField中的文本时,我试图突出显示该文本。第一次进入该字段时,行为按预期进行。轻按(先退出第一响应者)然后再轻按一次,除非我双击或长按文本字段,否则文本字段不会重新获得焦点。

这是我的代码。

override func viewDidLoad() { 
    textField.delegate = self

    // tap gesture to resign first responder 
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard(gestureRecognizer:)))
    self.view.addGestureRecognizer(tapGesture)
}

@objc func dismissKeyboard(gestureRecognizer: UITapGestureRecognizer) {
    textField.resignFirstResponder()
}


func textFieldDidBeginEditing(_ textField: UITextField) {

    // if I comment out this line or replace with a print statement, the text field regains focus on a single tap as expected        
    textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.endOfDocument)
}

如果我删除了textFieldDidBeginEditing中负责选择所有文本的代码,则文本字段将重新获得重点,只需单击一下即可(但显然不会突出显示文本)。

我尝试将打印语句放置在textFieldDidBeginEditing中,直到出现textField.selectedRange = ...行时连按两次或长按才调用它。但是,如果我注释这一行,则每次我进入文本字段时都会执行print语句。

1 个答案:

答案 0 :(得分:0)

我这样修复:

self.textField.resignFirstResponder()
self.textField.selectedTextRange = nil