[解決済み] iPhoneでテキスト入力のポップアップダイアログボックスを表示する簡単な方法は?
質問
ユーザー名を取得したい。 単純なテキスト入力のダイアログボックスです。 これを行うための任意の簡単な方法?
どのように解決するのですか?
iOS 5 では、新しい
簡単な
という方法があります。のような優雅なものではないので、まだ実装が完全に完成しているとは言えません。
UITableViewCell
のような潔いものではありませんので、まだ完全な実装とは言えませんが、iOSのAPIで標準的にサポートされていますので、間違いなくトリックを実行できるはずです。このためにプライベート API は必要ありません。
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"This is an example alert!" delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
[alert release];
このようにalertViewをレンダリングします(XCode 4.2のiPhone 5.0シミュレータで撮影したスクリーンショット)。
何かボタンを押すと、通常のデリゲートメソッドが呼び出されるので、そこでtextInputを以下のように抽出することができます。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"Entered: %@",[[alertView textFieldAtIndex:0] text]);
}
ここでは、入力された結果をNSLogしているだけです。プロダクションコードでは、alertViewへのポインタをグローバル変数として保持するか、alertViewタグを使用して、デリゲート関数が適切に呼び出されたかどうかをチェックする必要があるでしょう。
UIAlertView
によって呼び出されたかどうかを確認する必要がありますが、この例ではこれで大丈夫でしょう。
をチェックアウトする必要があります。 UIAlertView API をチェックすると、さらにいくつかのスタイルが定義されているのがわかるでしょう。
お役に立ったでしょうか?
-- EDIT --
alertViewを少し弄っていたのですが、textFieldを好きなように編集することが完全に可能であることは発表するまでもないでしょう:textFieldに参照を作成して
UITextField
への参照を作成し、通常通り(プログラム的に)それを編集することができます。
これを行うには、私はあなたが最初の質問で指定したようにalertViewを構築しました。遅かれ早かれ、ですね:-)?
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Hello!" message:@"Please enter your name:" delegate:self cancelButtonTitle:@"Continue" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField * alertTextField = [alert textFieldAtIndex:0];
alertTextField.keyboardType = UIKeyboardTypeNumberPad;
alertTextField.placeholder = @"Enter your name";
[alert show];
[alert release];
このようなアラートが出ます。
先ほどのポスターと同じデリゲートメソッドを使って、入力から結果を処理することができます。を防げるかどうかは分かりませんが。
UIAlertView
が解除されるのを防げるかどうかは分かりませんが(
shouldDismiss
デリゲート関数がないAFAIK) ので、ユーザ入力が無効な場合は、新しいアラートを出す必要があると思います (または、単に再度の
show
この1つを)正しい入力がされるまで、新しい警告を出さなければならないと思います。
楽しんでください。
関連
-
[解決済み] UILabel 内のテキストを縦に上部に揃える
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] UILongPressGestureRecognizerが押し下げ時に2回呼び出される
-
[解決済み】iOSアプリの名前を変更する方法は?
-
[解決済み] Objective-CでENUMを定義して使用するにはどうすればよいですか?
-
[解決済み] UIButton: 選択されたハイライト状態の画像を設定する
-
[解決済み] iPhoneのようにHTMLテキスト入力ボックスの中にクリアボタンを設置するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Mobile Safariで電話番号のリンクを無効にする方法を教えてください。
-
[解決済み] UIPageControlのページネーションドットの色を変更するにはどうしたらよいですか?
-
[解決済み] UINavigationControllerに右ボタンを追加する方法は?
-
[解決済み] iosアプリの最大メモリ使用量
-
[解決済み] iOSでHTMLをNSAttributedStringに変換する
-
[解決済み] Objective-C用JSONパーサーの比較(JSON Framework、YAJL、TouchJSON、etc.)
-
[解決済み] ナビゲーションコントローラスタック、サブビュー、モーダルコントローラを使用せずに、ビューコントローラの変化をアニメーション化する?
-
[解決済み] モバイルアプリにおけるOAuthの秘密
-
[解決済み] Objective-Cのプロトコルでプロパティを含むものはどう扱えばいいのか?
-
[解決済み] iPhoneでテキスト入力のポップアップダイアログボックスを表示する簡単な方法は?