見出し画像

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
   }
}

この記事が気に入ったらサポートをしてみませんか?