19

私のアプリの1つで、編集(テキストを入力)またはその他の「テキスト可能」にしようとするとUITextField、カーソルが点滅しますが、バックスペース(最初のテキストが含まれている場合のみ可能)以外の文字は入力されません。 RETURNと文字タイプの切り替え。これは、アプリケーション全体のすべてのコントロールに適用されます。UITextViewUIControl

概要:

  1. これはiOS6.0からのみ発生します(iOS 5.x、4.xでは発生せず、シミュレーターでも実際のデバイスでも発生しません)
  2. shouldChangeCharactersInRange:を除いて、すべてのデリゲートメソッドが実行されます(shouldBeginEditing:didBeginEditing:) 。
  3. isFirstResponderフラグは正しく設定された動作をしています(shouldBeginEditing:ログNO、didBeginEditing:ログYES)。また、ログを使用して、firstResponderがすでに編集されているものであることをテストします。
  4. UIAlertViewユーザーに提示されて却下された後、自動的に修復されます。このアラートが同じ画面(UIViewControllerビュー)に表示されているか、他の画面に表示されているかは関係ありません。

これにアプローチしたりデバッグしたりする方法すらわかりません。

ヒントはどこで探すべきですか?レスポンダーチェーン関連の問題などを追跡する専門家はいますか?

UIAlertView問題への影響を追跡するにはどうすればよいですか?

4

4 に答える 4

19

実装に応じて、アプリケーションデリゲートのメソッド内で呼び出すのを忘れmakeKeyAndVisibleたクラスのメソッドか、メインインターフェイスのxibファイルの対応するフラグのいずれかになります。UIWindow- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsVisible at Launch

乾杯... :)

于 2012-09-20T10:53:42.243 に答える
2

私の場合、メインウィンドウに「起動時に表示」があります。これはチェックされていません。iOS5でのみ機能します。iOS6で機能させるには、チェックする必要があります。

于 2013-03-21T05:13:51.863 に答える
0

私の状況では、バックグラウンドアクティビティの期間中にメインウィンドウ上にポップアップするアクティビティインジケーターがありました。この場合、アクティビティインジケータビューには、UIWindowLevelAlertに設定された独自のウィンドウがありました。このウィンドウで誤ってmakeKeyAndVisibleを呼び出していました。後で、resignKeyWindowを呼び出します。これは、以前はiOS 4および5で機能していましたが、iOS6では機能しなくなりました。window.hidden=Y/ Nを使用するだけでも同様に機能するため、これは技術的に必要ではないことがわかりました。

于 2013-01-09T00:34:46.043 に答える
0

私の場合、UITextFieldのbecomeFirstResponderをViewDidLoadからViewDidAppearに移動しました。これにより、問題が解決しました。

于 2013-07-11T20:13:55.347 に答える