【问题标题】:iOS get which uielement invoked UIKeyboardWillShowNotificationiOS 获取哪个 uielement 调用了 UIKeyboardWillShowNotification
【发布时间】:2012-06-22 15:00:11
【问题描述】:

在我的 iOS 应用程序中,我有几个 UIElements 可以处理用户输入:文本字段、可编辑的 web 视图等。每次我在这些 UIElements 中写一些东西时,键盘(显然)都会出现。在它发生之前,我可以通过观察UIKeyboardWillShowNotification 来捕捉这个事件。

我想知道如何找出是哪个UIElement 调用了此操作。

感谢您的帮助!

【问题讨论】:

    标签: ios ios5 uielement


    【解决方案1】:

    当用户点击的视图设置为FirstResponder时键盘启动,所以我认为这个问题相当于在收到UIKeyboardWillShowNotification时说how do I get the current first responder

    Thomas Muller 的 answer to that question 是使用如下类扩展:

    @implementation UIView (FindFirstResponder)
    - (UIView *)findFirstResponder
    {
        if (self.isFirstResponder) {        
            return self;     
        }
    
        for (UIView *subView in self.subviews) {
            UIView *firstResponder = [subView findFirstResponder];
    
            if (firstResponder != nil) {
                return firstResponder;
            }
        }
    
        return nil;
    }
    @end
    

    所以我认为你可以在 UIKeyboardWillShow 的处理程序中使用它来找出导致它的原因。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 在使用 UIKeyboardDidShow 通知的链接中,@zoltan 询问有关在 UIKeyboardWillShow 通知上获取响应者的问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 2016-09-14
      • 2018-02-05
      相关资源
      最近更新 更多