swift delegateの理解
デリゲートは、他のクラスに処理を委譲したる、通知する仕組み
①処理を依頼するクラス
textFieldShouldReturnは、UITextFieldDelegateプロコトルに定義されている。
だから、UIViewControllerで宣言する必要がある。
プロコトル:言語の橋渡し的な役割を持つ。つまり、UITextFieldDelegateでも使えるように宣言をする必要があります。
②処理を依頼するクラスと処理を依頼されるクラスを取り持つプロトコル
inputText.delegate = selfは、
日本語訳してみると、UITextFieldクラスのインスタンスであるinputTextのdelegateプロパティにViewControllerのインスタンスを渡している。
outputText.text = textは、
outputTextのtextプロパティに UILavelのtextを代入している
textは、UIラベルの属性でありラベルに表示する文字
つまり、UILavelのtextを違う場所に渡している
selfは、ViewController のインスタンスを表している
つまり、inputTextがreturnを押されたらViewController(私)に教えてね!
この情報に関する参考記事
【Swift】hogehoge.delegate = self は何をしているのか。 - Qiita
③処理を依頼されるクラス
キーボードのリターンキーをタップした時に呼ばれるメソッドがtextFieldShouldReturn ()メソッド
そのメソッド内でresignFirstResponderを使い、キーボードの削除が可能になる