10

SVProgressHUDの下の UITextField にテキストを入力するのに問題があります(基本的には、フルスクリーンの透明な UIWindow を持つ UIView と、テキストとカスタム描画のプログレス バーを表示するいくつかの UIView サブビュー)。

私の問題は、UITextField に点滅するカーソルが表示され、キーボードが表示されることですが、キーをタップしてもテキスト フィールドに何も入力されません。カーソルの点滅が通常と同じように割り込みます。興味深いことに、戻る (削除) キーは機能しますが (UITextView の最後の文字を実際に削除します)、他のキーは機能しません。

iOS6を使用しています。

どんな助けでも大歓迎です。

編集: SVProgressHUD が表示されていない場合、同じ UITextField が正常に機能します。これは、ファーストレスポンダーと関係があると思いますがresignFirstResponder、SVProgressHUD のすべてのウィンドウとサブビューを呼び出してみましたが、まだ機能しません。

4

4 に答える 4

35

私は最終的に問題を発見しました: SVProgressHUD はmakeKeyAndVisible、再配置のためにキーボード通知を受け取りたいため、初期化時に呼び出します。「キーウィンドウ」が実際に何であるかを調べたところ、次のことがわかりました。

...キー ウィンドウはユーザー入力に応答します...

ここで、SVProgressHUD の UIWindow が keyWindow であったため、UITextField を含む別のウィンドウはユーザー入力を取得しませんでした。

最後makeKeyWindowに AppDelegate のウィンドウを呼び出すと、すべて正常に動作しています。

これが同様の問題を抱えている人に役立つことを願っています。

于 2012-09-29T18:53:08.370 に答える
4

resignFirstResponder()を表示する前にキーボードを閉じるために呼び出しSVProgressHUDます。

于 2012-10-30T22:05:47.017 に答える
3

メソッドを実装しましたか....

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

...不要な文字を除外するには?もしそうなら、おそらくそれはフィルタリングに少し熱心ですか?

于 2012-09-29T15:46:22.687 に答える
0

私にとってこれはうまくいきました。

テキストフィールドのデリゲートメソッドに変更を加えたところ、うまくいきました。

if ([textField isEqual:selectBankName])
{
   return No;
}
else if ([textField isEqual:enterAmountTextfield])
{
    return YES;
}

return NO;
}
  1. テキストフィールドのデリゲートを設定
  2. テキストフィールドの userInteraction が有効になっていることを確認してください。

  3. 最後に、テキストフィールドのデリゲート メソッドを確認してください。

于 2015-08-13T05:39:30.270 に答える