確認したい事
テキストフィールドのreturnボタンをタップしたタイミングでキーボードが閉じられる仕組みを例にしてデリゲートの使い方を理解したいです。
以下のプログラムを実行すると期待通りの挙動にはなっているのですが、それぞれのコードが何を意味しているのかが分からず、デリゲートの使い方が理解できていない状況です。
質問1
UITextFieldクラス内の「weak open var delegate: UITextFieldDelegate?」の意味が理解できません。
delegateプロパティがUITextFieldDelegate型で定義されるということは、UITextFieldDelegateプロトコルに準拠する、
つまり、delegateプロパティを使えばtextFieldShouldReturnメソッドなどが使えるようになるということなのでしょうか。
質問2
質問2にも関連するかと思いますが、ViewControllerクラス内に記載されている「myTextField.delegate = self」が何を意味しているのかがわかりません。
初歩的な質問で申し訳ないですが、宜しくお願いします。
該当のソースコード
import UIKit
class ViewController: UIViewController, UITextFieldDelegate { //UITextFieldDelegateプロトコルに準拠する事を宣言
@IBOutlet weak var myTextField: UITextField! override func viewDidLoad() { super.viewDidLoad() myTextField.delegate = self //selfはViewControllerのインスタンスをmyTextField.delegateに代入している? } func textFieldShouldReturn(_ textField: UITextField) -> Bool{ //このメソッドがViewControllerクラス内で使えるのはViewControllerクラスがUITextFieldDelegateプロトコルに準拠しているから myTextField.resignFirstResponder() return true }
}
回答1件
あなたの回答
tips
プレビュー