0

オブジェクトがタイプであるかどうかを確認する賢い方法を誰かが持っているかどうか疑問に思っていましたUIKeyboardか? キーボード以外の他のinputViewクラスを起動するために通知を使用しているため、通知を使用できないため、UIKeyboardDidShow現在画面に表示されているinputViewを区別できる必要があります(つまり、何かの色を変更できるコントロール パネルがある画面)。

[view isKindOfClass:[UIKeyboard class]]UIKeyboard が認識されず、エラーが発生せずに .h ファイルをインポートできないため、使用できません。

私がここで何ができるか知っている人はいますか?

4

2 に答える 2

5

反射を使用します。

[view isKindOfClass:NSClassFromString(@"UIKeyboard")]
于 2013-04-08T14:31:23.503 に答える
1

あなたが求めていることを理解していれば、それが最初の応答者であるかどうかを入力ビューに尋ねるか、inputView プロパティをチェックして、設定されているかどうか、nil の場合はキーボードかどうかを確認できます。

UITextField *field = [[UITextField alloc] initWithFrame:CGRectZero];
if( [field isFirstResponder] ) {
    //Currently being used to input something
}

if( [field inputView] != nil ) {
    //User is not using a default keyboard
}
于 2013-04-08T14:32:54.653 に答える