swiftで行こう! --text!
iPhoneで文字を打ってみよう!
Xcodeを起動し新規プロジェクトを作ろう。そして"Main.storyboard"を選択して"ラベル"と"テキストフィールド"を設置します。
設置したものは以下です。
次に"ViewController.swift"を選んで、
@IBOutlet weak var label: UILabel!
@IBOutlet weak var textfield: UITextField!
@IBOutlet weak var textview: UITextView!
storyboadの各パーツ(ラベル、テキストフィールド、テキストビュー)と変数を結びつけています。
ここでビルドし、simulatorを立ち上げて入力しても、ラベル、テキストビューには何も表示されません。
テキストが入力できるようにするには、キーボード操作できるようにしないといけません。
その命令といえば、まず、
UITextFieldDelegate
です。プロトコルの追加をします。
class の表記は
class ViewController: UIViewController,UITextFieldDelegate {
// この間に命令を書く
}
となります。それでこのプロトコルを使えるようにする呪文が
textfield.delegate = self
ということで、 textfieldが UITextFieldDelegateの仲間であることから、このように、delegate して移譲します。そして実際にキーボード操作ができます。
そして動作に当たる部分を実装します。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
label.text = textfield.text
textview.text = textfield.text
textfield.resignFirstResponder()
return true
}
textfield.resignFirstResponder()
の部分で入力後の"Return"でキーボードが引っ込むようになります。
UITextFieldDelegate と textfield.delegate = self と
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
}
はワンセットで覚えましょう!
最後に全体像を
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var textfield: UITextField!
@IBOutlet weak var textview: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textfield.delegate = self
label.text = "" // 最初は空欄
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
label.text = textfield.text
textview.text = textfield.text
textfield.resignFirstResponder()
return true
}
}
この記事が気に入ったらサポートをしてみませんか?