ios - UITextField 不响应点击

标签 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 = ... 时双击或长按才调用它线存在。但是,如果我注释掉这一行,那么每次我点击文本字段时都会执行打印语句。

最佳答案

我是这样修复的:

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

关于ios - UITextField 不响应点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57501401/

相关文章:

swift - 缺少 xcode 8.1 调试符号

ios - 将 UIStackView 的 .fill 与 SwiftUI VStack 对齐

ios - UISearchBar - 如何防止在点击取消按钮时关闭 scopeBar?

ios - 降低 UIImage 的 DPI 分辨率

ios - Swift - 强制 View 在出现后加载数据

ios - swift 3 : Using AVCaptureAudioDataOutput to analyze audio input

swift - 来自 UICollectionView ReusableView(标题)的 Popover segue

ios - 检测变换后的 CAShapeLayer 路径上的点击

iphone - 如何关联UIKit,Core Image,Quartz 2D和iOS中的各种框架?

iphone - 僵尸报告 : message sent to deallocated instance