gpt4 book ai didi

ios - 如何防止 UIView 在点击 UITextField 中的清除按钮时立即消失?

转载 作者:行者123 更新时间:2023-11-30 13:40:42 25 4
gpt4 key购买 nike

我遇到了一个不知道如何解决的问题。我有一个 UITextField,允许用户输入文本进行搜索。

最初,UIView 是隐藏的。

UITextField 下面是一个 UIView,当用户点击 UITextField 内部时,它会被触发(hidden = false)。

func textFieldShouldBeginEditing(textField: UITextField) -> Bool
{
inSearchModeView.hidden = false
return true
}

UITextField 下面还有一个 UITableView,其中包含搜索结果。我将其设置为如果用户点击 UITextField 之外的任何位置,键盘就会消失。但是,为了确保在有任何可返回结果时我能够选择 UITableView 的内容,我进行了这样的设置:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool
{
if touch.view.self == videosTableView.self
{
return false
}

print("test")
self.inSearchModeView.hidden = true

return true
}

我希望在点击“清除”按钮时让 inSearchModeView 保持可见。

问题是,如果我输入文本,然后点击“清除”按钮,inSearchModeView 会在 1/2 秒内消失,然后再次出现。或者,如果我按住“清除”按钮,我会看到 inSearchModeView 消失,释放“清除”按钮后,它会重新出现并再次保持可见。

我注意到,通过 print 语句,当我点击“清除”按钮时,我看到 gestureRecognizer 被调用,即使它位于 UITextField 内。

如何解决此问题,除非我点击 UITextField 外部,否则我的 inSearchModeView 仍然可见?

这是我的点击手势代码:

viewDidLoad
{
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self,
action: "dismissKeyboard")
view.addGestureRecognizer(tap)
}

func dismissKeyboard()
{
// Causes the view (or one of its embedded text fields) to resign the first responder status.
view.endEditing(true)
}

谢谢

最佳答案

感谢 iAnurag 对 UITouch 的评论解决了我的问题。

我删除了该功能,现在它可以按预期工作。

关于ios - 如何防止 UIView 在点击 UITextField 中的清除按钮时立即消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35594270/

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