在我的 iOS 应用程序中,我有几个UIElement
可以处理用户输入的 s:文本字段、可编辑的 web 视图等。每次我在这些UIElement
s 中写一些东西时,键盘(显然)都会出现。在它发生之前,我可以通过观察UIKeyboardWillShowNotification
.
我想知道如何找出UIElement
调用此操作的方法。
谢谢你的帮助!
当用户点击的视图设置为 FirstResponder 时,键盘启动,所以我认为这个问题相当于说收到 UIKeyboardWillShowNotification 时如何获取当前的第一响应者?
Thomas Muller 对这个问题的回答是使用类扩展,如下所示:
@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 的处理程序中使用它来找出导致它的原因。
我认为本文档的第 4 节(移动位于键盘下方的内容)可以提示您了解哪些元素具有键盘。