質問: self ← ここ > > } > > override func didReceiveMemoryWarning() { > > super.didReceiveMemoryWarning() > > } > > > func textFieldShouldReturn(textField:UITextField) -> Bool { > > //キーボードを隠す > > self.view.endEditing(true) > > return false > > } > > } > > > ### 試したこと ### 補足情報(言語/FW/ツール等のバージョンなど)
回答: デリゲートって悩みますよね(>ω<) 私の説明の仕方が今回合うかわかりませんが、デリゲートの解釈には色々な聞き方をしてしっくり合うものがあったとき理解できると思うので書かさせていただきます。 できたら一回作成してみたり、自分でどうなんだろうって考えていくともっとしっくりくるきもするので頑張れたらぜひ!! デリゲートとは、あらかじめ作られたものの中で使われるところが決まっているところに値を入れる時などによく使うのではないかと思っています。 って言っても大雑把すぎるので...... 例えば、今回TextFieldというものを作った人がいるとします。しかし、作った人がこのTextFieldの作業を決めてしまったらそれはカスタマイズできなくなってしまいます。私たちにカスタマイズさせるために、リターンキーを押したところ、テキスト入力した時など、あらかじめ処理を行うため用意して起きます。 その用意したものがデリゲートメソッドなるものなのです。使い方はわかると思うので使い方は書きませんが、 このデリゲートメソッドも使う場所がAクラスだとしても、BクラスとしてもCクラスとしてもよいわけです。 ただ、そのデリゲートメソッドはどこのクラスで使うのかわからないとコードが???????ってなってしまうので、このデリゲートメソッドはAクラスで使いますよというわけです。 その使いますよが、 myTextField.delegate = self の記述となるわけです。 今回TextFieldがしたい処理をするので、ラベルなどがどこにあろうと関係ないということです。ただself内でデリゲートを宣言するとラベルもself内でかけるのでアクセスしやすいかなって感じなのですヽ( ́▽`) 完璧な回答ではないかもしれませんが、一応私はこの考え方で納得できたので書かさせていただきました!! 少しでも参考になれば嬉しいです(。・ω・。)