1

現在アプリを操作していない場合 (テキストフィールドが選択されていないなど)、ファーストレスポンダーオブジェクトはまだありますか? 私がテストしたように、レスポンダー チェーンにメッセージを送信すると、現在の ViewController.view はそれを受け取りますが、その isFirstResponder は NO を返します。それで、他の要素がまだファーストレスポンダーであると推測していますか?または、レスポンダー チェーンは常に存在しますが、最初のレスポンダー オブジェクトである必要はありませんか?

4

2 に答える 2

3

これでファーストレスポンダーを見つけることができます:

@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
于 2013-06-06T13:55:10.830 に答える