アラートにテキストフィールドを追加すると、
アラート表示の際に自動的にキーボードが出現してしまいます。
これを、
テキストフィールドがタップされない限りキーボードを非表示にしておくようにはできないでしょうか?
swift
1 let alert = UIAlertController(title: nil, message: nil, preferredStyle: .alert) 2 alert.title = "移動・名称変更" 3 alert.message = "\n(showFileName)" + "を移動します。\n移動先フォルダを選択してください。" 4 5 // PickerViewがおいてあります。 6 7 8 alert.addTextField { (textField) -> Void in 9 textField.delegate = self 10 textField.text = showFileName 11 } 12 alert.addAction( 13 UIAlertAction(title: "OK", style: .default, handler: {(action) -> Void in self.deleteCsv()})) 14 alert.addAction( 15 UIAlertAction(title: "Cancel", style: .cancel, handler: nil)) 16 self.present(alert, animated: true, completion: nil) 17
必要になる方がおられるかもしれないので追記。
アラート表示でキーボードを出なくすると、OKを押しても、テキストフィールドに何も入力していない状態のエラーがでるので、回避のためにcompletionの中で再度初期値を設定してやるとOK押すだけですすめるようになります。
教えていただいた記述に加えて、この場合は、newName(textField.textの値が渡される変数) = showFileName でいいみたい。
もしくは、アラート上のテキストフィールドを一度タップすると初期値が渡されるようです。
なので初期値を再度設定するのではなくフォーカスをあてるような処理をしてもよいのかな?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/20 05:21
2018/02/20 05:36
退会済みユーザー
2018/02/20 08:57
2018/02/20 08:59
退会済みユーザー
2018/02/20 09:20