1

私のiOSアプリにはUIElement、ユーザー入力を処理できるいくつかのがあります。テキストフィールド、編集可能なWebビューなど、これらに何かを書き込むたびにUIElement、キーボードが(明らかに)表示されます。それが起こる前に、私はを観察することによってこのイベントを捕まえることができUIKeyboardWillShowNotificationます。

UIElementこのアクションを呼び出したのはどれかを知る方法を知りたいのですが。

ご協力いただきありがとうございます!

4

2 に答える 2

3

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

于 2012-06-22T15:19:33.870 に答える
-1

このドキュメントのセクション 4 (キーボードの下にあるコンテンツの移動) は、どの要素にキーボードがあるかを知るヒントになると思います。

http://developer.apple.com/library/ios/#DOCUMENTATION/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW1

于 2012-06-22T15:09:01.043 に答える