■階層: NSObject > UIResponder > UIView > UIControl > UITextField
文字を入力するためのコントロールです。UILabelと同様に文字のフォントや色、背景色などを変更することが可能です。iOSでは表示するキーボードを適切に管理する役割もになっています。UITextFieldDelegateによって編集動作を制御することもできます。
目次
<li>
<a href="#i-3"><span class="toc_number toc_depth_1">3</span> サンプル</a>
</li>
<li>
<a href="#i-4"><span class="toc_number toc_depth_1">4</span> 参考情報</a>
</li>
主なプロパティ
UITextFieldの主要なプロパティをリストアップします。
プロパティ名 | 型 | 説明 |
---|---|---|
text | String? | テキストフィールドに表示されるテキスト |
placeholder | String? | テキストフィールドが空の場合に表示される文字列 |
font | UIFont? | テキストフィールドのテキストのフォント |
textColor | UIColor? | テキストの色 |
textAlignment | NSTextAlignment | テキストの配置 |
borderStyle | UITextBorderStyle | テキストフィールドの枠 |
keyboardType | UIKeyboardType | 表示するキーボードの種類 |
returnKeyType | UIReturnKeyType | キーボードのリターンキー |
デリゲート
UITextFieldDelegate
編集の開始や終了時に呼び出されます。
メソッド | 説明 |
---|---|
textFieldShouldBeginEditing: | 編集を開始すべきかどうかを決定します |
textFieldDidBeginEditing: | 編集開始直後に呼び出されます |
textFieldShouldEndEditing: | 編集を終了すべきかどうかを決定します |
textFieldDidEndEditing: | 編集終了後に呼び出されます |
サンプル
UITextFieldをプログラムで生成して各種プロパティを設定するプログラムです。
myTextFieldはInterface Builderで生成したもので、ViewControllerをdelegateとして設定してあります。UITextFieldDelegateの各メソッドが呼び出されることが確認できます。
```swift class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var myTextField: UITextField! override func viewDidLoad() { super.viewDidLoad() let textField = UITextField(frame: CGRectMake(20, 20, 200, 40)) textField.placeholder = "プレースホルダです" //プレースホルダの設定 textField.text = "初期値です" //テキストの設定 textField.backgroundColor = UIColor.lightGrayColor() //背景色の設定 textField.font = UIFont.systemFontOfSize(14) //フォントサイズの指定 textField.font = UIFont.systemFontOfSize(UIFont.systemFontSize()) //システムフォントサイズと同じサイズ textField.font = UIFont.italicSystemFontOfSize(UIFont.labelFontSize()) //イタリックに変更 textField.font = UIFont.boldSystemFontOfSize(UIFont.labelFontSize()) //ボールドに変更 textField.font = UIFont(name:"ArialHebew", size:UIFont.labelFontSize()) //フォント名を指定 textField.textColor = UIColor.redColor() //赤色に設定 textField.textAlignment = NSTextAlignment.Left //左揃え textField.textAlignment = NSTextAlignment.Center //中央揃え textField.textAlignment = NSTextAlignment.Right //右揃え //https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextField_Class/#//apple_ref/c/tdef/UITextBorderStyle textField.borderStyle = UITextBorderStyle.None //枠なし textField.borderStyle = UITextBorderStyle.Line //線の枠線 textField.borderStyle = UITextBorderStyle.Bezel //立体的な枠線 textField.borderStyle = UITextBorderStyle.RoundedRect //角丸 //キーボードの種類の指定 //https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextInputTraits_Protocol/#//apple_ref/c/tdef/UIKeyboardType textField.keyboardType = UIKeyboardType.Default //デフォルト textField.keyboardType = UIKeyboardType.ASCIICapable // ASCII textField.keyboardType = UIKeyboardType.NumbersAndPunctuation //数字と記号 textField.keyboardType = UIKeyboardType.URL //URL用 textField.keyboardType = UIKeyboardType.NumberPad //テンキー textField.keyboardType = UIKeyboardType.PhonePad //電話用 textField.keyboardType = UIKeyboardType.NamePhonePad //名前または電話番号 textField.keyboardType = UIKeyboardType.EmailAddress //メールアドレス textField.keyboardType = UIKeyboardType.DecimalPad //数字 textField.keyboardType = UIKeyboardType.Twitter //Twitter用 textField.keyboardType = UIKeyboardType.WebSearch //Web検索用 textField.keyboardType = UIKeyboardType.Alphabet //ASCIIと同じ //Returnキーの指定 //https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextInputTraits_Protocol/#//apple_ref/c/tdef/UIReturnKeyType textField.returnKeyType = UIReturnKeyType.Default //デフォルト textField.returnKeyType = UIReturnKeyType.Go //Go textField.returnKeyType = UIReturnKeyType.Google//Google textField.returnKeyType = UIReturnKeyType.Join //Join textField.returnKeyType = UIReturnKeyType.Next //Next textField.returnKeyType = UIReturnKeyType.Route //Route textField.returnKeyType = UIReturnKeyType.Search //Search textField.returnKeyType = UIReturnKeyType.Send //Send textField.returnKeyType = UIReturnKeyType.Yahoo //Yahoo textField.returnKeyType = UIReturnKeyType.Done //Done textField.returnKeyType = UIReturnKeyType.EmergencyCall //EmergencyCall textField.returnKeyType = UIReturnKeyType.Continue //Continue //クリアボタンの表示 //https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextField_Class/#//apple_ref/c/tdef/UITextFieldViewMode textField.clearButtonMode = UITextFieldViewMode.Never //表示しない textField.clearButtonMode = UITextFieldViewMode.WhileEditing //編集中のみ表示 textField.clearButtonMode = UITextFieldViewMode.UnlessEditing //編集中以外に表示 textField.clearButtonMode = UITextFieldViewMode.Always //常に表示 self.view.addSubview(textField) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func textFieldShouldBeginEditing(textField: UITextField) -> Bool { //編集を開始すべきかどうかを決定する print("textFieldShouldBeginEditing") return true } func textFieldDidBeginEditing(textField: UITextField) { //編集開始直後に呼ばれる print("textFieldDidBeginEditing") } func textFieldShouldEndEditing(textField: UITextField) -> Bool { //編集を終了すべきかどうかを決定する print("textFieldShouldEndEditing") return true } func textFieldDidEndEditing(textField: UITextField) { //編集終了後に呼ばれる print("textFieldDidEndEditing") } } ```実行結果です。
UITextFieldDelegateの反応を調べる場合、シミュレーターの設定でハードウェアキーボード(Macのキーボード)を使わないように設定しておきます。「Hardware > Keyboard」と進み「Connect Hardware Keyboard」のチェックを外しておきます