(環境)
xcode:11.3
version 5.1.3
(参考文献)
詳解 Swift 第5版
著者 萩原剛志
発行者 SBクリエイティブジャブ式会社
でdelegateに出会い理解ができずに、Qiitaで平易な解説がされている記事を見つけました。
以下のコードの説明において、文中で以下の記載がございます。
outputTextはUITextFieldクラスのインスタンスなので、これは、outputTextのtextプロパティにtextを代入することを意味します。
コードを見ても私にはoutputText
はUITextField
のインスタンスとして読み取れず、どちらのインスタンスであったとしても、後段の以下の文章との因果関係を読み解くことができません。
なるほど、だからこう実装することでUITextField(inputText)に入力された文字列をUILabel(outputText)に渡せるんですね。
1.実際にUITextFieldクラスのインスタンスであるのか?またそれはどのコードから読み解くことができるのかをアドバイス願えますでしょうか?また、後段との因果関係、なぜUITextFieldのインスタンスまたはUILabelのインスタンスであれば文字列を渡せるのかをご教示願えますでしょうか?
2.また、基本的な理解なのですが、self.propなどでは自分自身のクラスの中のpropプロパティにアクセスできることは理解しているのですが、inputText.delegate = self
の様な記法にけるクラスはそのクラス全体を指している(特定のプロパティやメソッドではない)という理解であっていますでしょうか?
Swift
1import UIKit 2 3class ViewController: UIViewController, UITextFieldDelegate { // 追加記述① 4 5 @IBOutlet weak var inputText: UITextField! 6 @IBOutlet weak var outputText: UILabel! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 // 追加記述② 11 inputText.delegate = self 12 } 13 14 override func didReceiveMemoryWarning() { 15 super.didReceiveMemoryWarning() 16 } 17 18 // 追加記述③ 19 func textFieldShouldReturn(_ textField: UITextField) -> Bool { 20 textField.resignFirstResponder() 21 let text = textField.text 22 outputText.text = text 23 return true 24 } 25}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/26 02:05 編集
2020/03/26 02:21
2020/03/26 02:46 編集
2020/03/26 03:02
2020/03/26 04:11
2020/03/26 04:24
2020/03/26 04:24
2020/03/26 04:24
2020/03/26 04:26
2020/03/26 04:27
2020/03/26 04:30
2020/03/26 04:36
2020/03/26 04:55
2020/03/26 05:02
2020/03/26 05:14
2020/03/26 05:17
2020/03/26 05:18
2020/03/26 05:21
退会済みユーザー
2020/03/26 05:26
2020/03/26 05:37
2020/03/26 05:49
2020/03/26 07:14