iOS - 将点击手势添加到 UITextField

Posted

技术标签:

【中文标题】iOS - 将点击手势添加到 UITextField【英文标题】:iOS - Add Tap Gesture to UITextField 【发布时间】:2014-09-04 22:31:40 【问题描述】:

我在向我的 UITextField 添加点击手势时遇到问题。下面的代码:

@IBAction func hanldeTap(recognizer: UITapGestureRecognizer) 
    println("works")

此操作与点击手势识别器相关联。在我的 TextField 中,我在 OutletCollections 中定义了 gestureRecognizer。在我看来它应该有效。在所描述的配置中,手势有效,例如用于按钮或自定义视图。

你能告诉我可能出了什么问题,我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

UITextField 有delegate methods,您可能需要考虑实现这些。或者只是将动作事件添加到您的文本字段。

例如viewDidLoad

textField.addTarget(self, action:Selector("textDidBeginEditing"), forControlEvents: UIControlEvents.EditingDidBegin)

然后实现这个:

func textDidBeginEditing(sender:UITextField) -> Void

   // handle begin editing event
 

【讨论】:

为什么在 UITextField 中我不能只使用 UITapGesture? 我想在这个文本上点击一次并显示一个弹出视图,当点击两次时我想隐藏它。我不认为我可以这样处理。我想我必须创建一个自定义视图。 我同意你的最后一句话,更好的主意。【参考方案2】:

如果你设置了textfields委托,你可以使用;

optional func textFieldDidBeginEditing(_ textField: UITextField)

optional func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool

【讨论】:

以上是关于iOS - 将点击手势添加到 UITextField的主要内容,如果未能解决你的问题,请参考以下文章

如果将点击手势识别器添加到其背景视图中,则不会调用 iOS didSelectItemAtIndexPath

将点击手势添加到任何视图都不会触发

iOS:从顶视图到底视图拦截点击手势事件

iOS - 在图像视图上点击手势问题

以编程方式将点击手势添加到 UILabel

将点击手势添加到插座集合