gpt4 book ai didi

ios - GestureRecognizer 接受所有触摸输入

转载 作者:行者123 更新时间:2023-11-30 12:38:07 25 4
gpt4 key购买 nike

我的 Storyboard中有此设置。

Storyboard

在我的第一个 ViewController 场景中,我有一个来自 MapBox 的 MapView。我在那里放置了一个文本字段(AddressTextField)。在触摸 View 时,在该 TextField 上运行 self.addressTextField.resignFirstResponder(),但之后,无论是 map View 还是其中或嵌入式 Segue 中的任何其他元素都不会对触摸或嵌入使用react。点击。可能这是因为我没有完全理解First Responder的系统。我感谢每一个帮助。

编辑1:我想我知道现在发生了什么,但我不知道如何解决。当我将手势识别器添加到 View (或 mapView,这并不重要)时,其他 UIView 和 MapView 不再识别我的点击手势。当我不添加识别器时,一切正常。手势识别器似乎可以识别我在 UIViewsMapView 上进行的每次点击,因此无法识别其他手势。

编辑2:我刚刚向 dismissKeyboard() 添加了 print()。一旦 MapView 或其他 UIViews 上识别出任何触摸事件,就会调用 dismissKeyboard()。所以我认为我对编辑1的想法是正确的。有谁知道我该如何解决这个问题,这样就不仅仅是 dismissKeyboard() 被调用?

一些代码:

func dismissKeyboard(){
self.addressTextField.resignFirstResponder()
}

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
dismissKeyboard()
return true
}

//Class (only partially)
class ViewController: UIViewController, MGLMapViewDelegate, CLLocationManagerDelegate, UITextFieldDelegate {
override func viewDidLoad(){
mapView.delegate = self
addressTextField.delegate = self
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
self.mapView.addGestureRecognizer(tap)
}
}

其他只是链接到按钮或其他元素的@IBAction

最佳答案

试试这个:

func dismissKeyboard(){
view.endEditing(true)
}

希望对你有帮助!

关于ios - GestureRecognizer 接受所有触摸输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42610175/

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