質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

デリゲート処理におけるselfの代入

tunechan
tunechan

総合スコア0

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

3回答

0評価

0クリップ

11閲覧

投稿2017/09/27 02:30

###前提・実現したいこと
swift 初心者です。イベントの受け方を調べていると、デリゲートについての解説があり理解できない部分があり、質問させていただきます。
xcodeのstoryboardに「Label」と「TextField」を貼り付け、「TextField」に入力した文字を、「Label」に表示させるようにするとき、「TextField」のeventを「Editing Change」にすると、returnキーを押してもキーボードが隠れないので、デリゲートでreturnキーを押した時に発生する「textFieldShouldReturn」イベントを受けるようにするというものです。デリゲート処理説明の鉄板だと思われますが、下記の .delegate = self の部分で質問です。左辺の.delegate はプロコトルUITextFieldDelegate、右辺のselfはViewControllerのインスタンスで、UITextFieldDelegateを批准していますが他にも変数myLabelを持っています。これが = で代入文が書けるのが理解できません。キャストされると考えるのでしょうか?
初心者の質問でおかしなことをきいているのかもしれませんが、よろしく御願いいたします。

###該当のソースコード

class ViewController: UIViewController,UITextFieldDelegate{
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myTextField: UITextField!          
@IBAction func myTextFieldEvent(sender: UITextField) {
myLabel.text = sender.text
}
override func viewDidLoad() {
super.viewDidLoad()
myTextField.delegate = self     ← ここ                 
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
} 

func textFieldShouldReturn(textField:UITextField) -> Bool {   
//キーボードを隠す
self.view.endEditing(true)
return false
}
}

###試したこと

###補足情報(言語/FW/ツール等のバージョンなど)

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

fuzzball
fuzzball

2017/09/27 02:41 編集

「他にも変数myLabelを持ってる」から「= で代入文が書けるのが理解できない」ということでしょうか?(コードは引用ではなく ``` で囲って下さい)
tunechan
tunechan

2017/09/27 02:48

はい、そうです。あまりにも初歩的な質問かもしれませんがよろしく御願いします。
ozwk
ozwk

2017/09/28 05:31

Aを継承したBクラスがあって、BクラスのインスタンスはAクラス型の変数に入れられることに疑問はありますか\?
tunechan
tunechan

2017/09/28 06:01

はい、そこなんです。そこを理解できていませんでした。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています