【问题标题】:Does UITextField consume touch events?UITextField 是否消耗触摸事件?
【发布时间】:2010-09-16 13:01:19
【问题描述】:

我的视图控制器有 UITextField 对象作为子视图。控制器设置为目标以处理文本字段的 UIControlEventTouchUpOutside 事件。 当文本字段成为第一响应者时,我正在尝试使用此事件处理程序来关闭键盘,但它似乎从未被调用过。像 textFieldShouldReturn 这样的委托方法工作得很好。

为什么文本字段对象不向目标发送操作消息?我为一堆所有的触摸事件尝试了这个方案,但没有运气。或者我必须以某种方式继承 UITextField 才能捕捉到这个事件?

提前致谢!

【问题讨论】:

    标签: iphone events uitextfield


    【解决方案1】:

    UITextField 肯定会响应这些事件以处理光标定位等。它可能不会将这些事件“转发”给其父级。如果您需要拦截这些,您可以继承 UITextEvent 并自己捕获这些事件(当然不要忘记调用 [super blablabla] 以保持标准行为。

    【讨论】:

      【解决方案2】:

      也许它只是不响应 UIControlEventTouchUpOutside 事件。我确信它会响应 UIControlEventValueChanged 事件。我认为您可以将透明的自定义 UIButtom 作为背景视图,如果 UIButtom 中有 touchInSideUp,您可以根据需要关闭键盘。

      【讨论】:

        【解决方案3】:

        它响应与 UIButton 相同的事件。看看IB。你也可以考虑使用 UITextFieldDelegate 方法

        - (BOOL) textFieldShouldBeginEditing:(UITextField *)textField
        

        【讨论】:

        • 不响应 UIControlEventTouchUpInside
        猜你喜欢
        • 2018-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-15
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 2011-06-09
        相关资源
        最近更新 更多