UIAlertView
非常にうまく機能するカスタム (ゼロから、サブクラス化されていない) クラスを作成しましたが、アラートにテキスト フィールドがあると問題が発生します。この特定の例では、電子メール アドレス フィールドをタップすると、ポップアップ アラートの下にキーボードが表示されます。このポップアップが呼び出されるビューにもUITextField
(コメント ボックス) があります。メイン ビューのテキスト フィールド (コメント ボックス) をテーピングした後、ポップアップ テキスト フィールド (電子メール アドレス) をタップした場合にのみ、この問題が発生することに気付きました。テキスト フィールドは同じデリゲートを使用していません。
キーボードをビュー階層の前面に強制する方法はありますか?
更新: ポップアップにテキスト フィールドを追加するコード (これは私のアラート クラスの 1 つですPopupDialog.m
)
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 100, 34)];
_textField.font = [UIFont fontWithName:@"GillSans" size:18];
_textField.borderStyle = UITextBorderStyleRoundedRect;
_textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
_textField.backgroundColor = [UIColor white];
_textField.delegate = self;
_textField.placeholder = @"email@domain.com";
後でボタンの上のポップアップ ビューに追加されます。半透明の黒い背景とポップアップ ビューは、最終的に次の方法でビュー階層に追加されます。
[[[[UIApplication sharedApplication] windows] lastObject] addSubview:background];
[[[[UIApplication sharedApplication] windows] lastObject] addSubview:self];