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を使い、キーボードの削除が可能になる