uitextfieldキーボード入力を取得していません
-
11-12-2019 - |
質問
svprogresshud (基本的にフル付きUView)の下にあるUitextFieldにテキストを入力しています。スクリーントランスペアレントUIWindowとテキストとカスタム描画プログレスバーを表示しているUIViewサブビュー)。
私の問題は、uitextFieldが点滅カーソルとキーボードを表示することを示していますが、キーをタップするとテキストフィールドには何も入力されません。 私は通常のようにカーソルの点滅が中断されたことがわかります。 興味深いことに、背面(削除)キーが機能します(UITextViewの最後の文字は本当に削除されます)が、他のキーではありません。
私はiOS 6を使っています。
あらゆる助けが高く評価されるでしょう。
編集:
SVProgressHudが表示されていない場合は、同じUITEXTFIELSがうまく機能します。これは私が最初の応答者と関係があると思いますが、私はすでにすべてのウィンドウでresignFirstResponder
を呼び出してみましたが、SVProgresshudのサブビューでまだ機能しません。
解決
ついに問題を見つけました:
SVProgressHUD初期化されているときにmakeKeyAndVisible
を呼び出して、再配置のためにキーボード通知を受け取りたいと思います。私は「キーウィンドウ」が実際にあるものを見上げて見つけました:
...キーウィンドウはユーザ入力に応答する...
今、SVProgressHUDのUIWindowが鍵ウィンドウであるため、UITEXTFIELを含む他のウィンドウはユーザー入力を取得しませんでした。
最後にAppDelegateのウィンドウで
makeKeyWindow
を呼び出し、すべてがうまく機能しています。私はこれが同様の問題を抱えている人に役立つことを願っています。
他のヒント
resignFirstResponder()
を表示する前にキーボードを閉じます。
メソッドを実装しましたか....
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
.
...望ましくない文字を除外するには?もしそうなら、おそらくそれはフィルタリングで少し溢れているのですか?
私のためにこれはうまくいきます。
私はTextField Delegateメソッドの変更を行い、それはうまくいきました。
if ([textField isEqual:selectBankName])
{
return No;
}
else if ([textField isEqual:enterAmountTextfield])
{
return YES;
}
return NO;
}
.
- textfield の代理人を設定します。
-
TextField UserInteractionがenabled.and を確認してください。
-
最後にあなたのTextField Delegateメソッドを確認してください。