2

この問題に遭遇した人、または助けてくれる人が他にいるかどうか疑問に思っていますか?

基本的に、アプリ内の画面でカスタム キーボードを使用しています。

画面には x4 テキスト フィールドがあります。読み込み時には、最初のレスポンダーが最初のテキスト フィールドになります。これはios6でも完全に機能します。問題は、データが最初のテキスト フィールドに追加されたときに発生します。UIControlEventEditingChanged (ios5 のように) が発生するはずですが、発生しません。iOS5 では、これにより入力されたデータのチェックがトリガーされ、適切な場合は最初の応答者が次のテキスト フィールドに変更されます。そのためのコードは次のとおりです。

[self.field addTarget:self
                action:@selector(textFieldDidUpdate:)
      forControlEvents:UIControlEventEditingChanged];

問題を特定するために、標準のキーボードを使用してテキスト フィールドで上記のコードをテストしました。これは ios6 で動作するため、ios6 の問題を引き起こしているカスタム キーボードに関する何かである必要があると思われます。 iOS5でやっていますが、自動的に管理されていました。

注目に値するのは、私はまだ 4 つの分野すべてに触れることができるということです。つまり、他の人が質問している問題とは別の問題です。

このコードを使用してキーボードを非表示にします。

id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance];
[keyboardImpl setAlpha:0.0f];

各フィールドはキーボードをリロードします。

修正方法がわからないという警告もあります。

id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance];

ライブラリ関数 'objc_getClass' をタイプ 'id (const char *)' で暗黙的に宣言しています

インスタンス メソッド '-sharedInstance' が見つかりません (戻り型のデフォルトは 'id' です)

少し別のメモですが、このタイプのキーボードがアップルによって拒否されることがあると聞いたことがありますが、誰かがこれを経験したことがあるかどうか聞いてみたいですか?

ありがとう :)

4

2 に答える 2

1

さて、これで動作しました。myCustomKeyboardメソッドの例を次に示します。この答えがあなたに関連していることを願っています

- (IBAction)button0Pressed {
self.textField.text = [self.textField.text stringByAppendingString:@"0"];
[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];
[self playSound];
}

主な追加は

[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];

それから私の他のクラスで私はこれを持っています

[[doubleCheckAlertView textFieldAtIndex:0] addTarget:self action:@selector(testMethod) forControlEvents:UIControlEventEditingChanged];

-(void) testMethod {
//Do something
}
于 2012-11-26T11:35:24.543 に答える