gpt4 book ai didi

成为第一响应者后,添加到文本字段的 Swift 手势识别器无法操作?

转载 作者:行者123 更新时间:2023-11-28 10:23:36 25 4
gpt4 key购买 nike

我在 swift 中向文本字段添加了点击和双击手势识别器,因此单击执行功能但双击实际上使文本字段成为第一响应者。虽然在文本字段第一次成为第一响应者后它停止工作。也就是说,文本字段通过单击而不是双击成为第一响应者来正常运行。关于如何让我的手势识别器正常工作有什么想法吗?

最佳答案

另一种方法:

只需在文本字段顶部创建一个“不可见” View 并向其添加手势识别器即可

    import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self;
}

override func viewDidAppear(animated: Bool) {
let tap1 = UITapGestureRecognizer(target: self, action: "onSingleTap")
let tap2 = UITapGestureRecognizer(target: self, action: "onDoubleTap")
tap2.numberOfTapsRequired = 2

// create a view and put it on top of the textfield
// here created at viewDidAppear for example but you can do it better

var dummieView = UIView(frame: self.textField.frame)
dummieView.backgroundColor = UIColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 0.25)
self.view.addSubview(dummieView)
dummieView.addGestureRecognizer(tap1)
dummieView.addGestureRecognizer(tap2)
}

func onSingleTap(){
println("custom single tap")
if self.textField.isFirstResponder() {
self.textField.resignFirstResponder()
}
}

func onDoubleTap(){
println("double tap")
self.textField.becomeFirstResponder()
}

func textFieldShouldReturn(textField: UITextField) -> Bool {
if self.textField.isFirstResponder() {
self.textField.resignFirstResponder()
}
return true
}


}

关于成为第一响应者后,添加到文本字段的 Swift 手势识别器无法操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com