最後に、サブビューを再帰的に通過し、それらがファーストレスポンダーであるかどうかをログに記録するこの関数でこれを理解しました。
- (void) logResponderInfo: (UIView *)view
{
NSLog(@"%@ %@", NSStringFromClass(view.class), view.isFirstResponder ? @"yes" : @"no");
for (UIView *sub in view.subviews) {
[self logResponderInfo:sub];
}
}
canPerformAction:withSender:
関数から呼び出したもの
[self logResponderInfo:self.webView];
これはログに書き出されました
2013-11-18 11:35:56.100 Testing[44593:a0b] CDVCordovaView no
2013-11-18 11:35:56.100 Testing[44593:a0b] _UIWebViewScrollView no
2013-11-18 11:35:56.101 Testing[44593:a0b] UIWebBrowserView yes
2013-11-18 11:35:56.101 Testing[44593:a0b] UITextSelectionView no
2013-11-18 11:35:56.102 Testing[44593:a0b] UIView no
2013-11-18 11:35:56.102 Testing[44593:a0b] UIImageView no
2013-11-18 11:35:56.103 Testing[44593:a0b] UIImageView no
2013-11-18 11:35:56.103 Testing[44593:a0b] UIActivityIndicatorView no
2013-11-18 11:35:56.104 Testing[44593:a0b] UIImageView no
最初の応答者は実際には UIWebBrowserView であることがわかりました。