ユーザーがタップしたビューが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のハンドラー内でそれを使用して、原因を特定できると思います。