Learn Swift / 第25章 Currency Converter 6
このコーナーでは、Swift による、Mac OS X アプリケーションの作成方法を、説明しています。
ビューとコードの接続
この章では、原文と大きく違う、説明をしています。ビューとコードの接続には、次の二つの種類があります。
- アウトレット (outlet、出口)
- コードからビューへ、指令を出すための接続
- アクション (action、動作)
- ビューからコードへ、指令を出すための接続
アウトレットの接続
ナビゲータエリアで、Main.storyboard を選択して、エディタエリアにストーリーボードを表示してください。そして、次の図のマウスポインターの位置を参考にして、アシスタントエディタ (Assistant editor) ボタンをクリックしてください。
エディタエリアの画面が、次の図のように、二つに分割されます。もし、表示されているコードが NSApplication.h だったら、ツールバーの「NSApplication.h」という文字列をクリックして、ViewController.swift に変更してください。
ビューとコード (ViewController.swift) をアウトレットで接続します。ストーリーボードの一番上のテキストフィールドを、control キーを押しながらドラッグすると、次の図のように、接続線が現れます。ViewControler.swift の「class ViewController: NSViewController {」という行の、次の行でドロップしてください。なお、control キーを押す代わりに、右クリックしなたらドラッグしても、接続線が現れます。
表示される、コネクションパネルで、Name を「rateField」に設定して、「Connect」ボタンをクリックしてください。ViewController.swift に、@IBOutlet weak var rateField: NSTextField! というコードが、自動的に挿入されます。
上記の要領で、二番目のテキストフィールドと、ViewController.swift をアウトレットで接続してください。
表示される、コネクションパネルで、Name を「dollarField」に設定して、「Connect」ボタンをクリックします。ViewController.swift に、@IBOutlet weak var dollarField: NSTextField! というコードが、自動的に挿入されます。
三番目のテキストフィールドと、ViewController.swift をアウトレットで接続してください。
表示される、コネクションパネルで、Name を「amountField」に設定して、「Connect」ボタンをクリックします。ViewController.swift に、@IBOutlet weak var amountField: NSTextField! というコードが、自動的に挿入されます。
アクションの接続
ボタンと、ViewController.swift をアクションで接続します。アクションの接続の方法は、アウトレットの接続の方法と同じです。ボタンを、control + クリックするか、右クリックして、ViewController.swift まで、接続線を伸ばしながら、ドラッグしてください。
表示される、コネクションパネルで、Connection を「Action」に変更して、Name を「convert」にしてください。Typeは、デフォルトの「AnyObject」のままにしておきます。設定が終わりましたら、「Connect」ボタンをクリックしてください。ViewController.swift に、@IBAction func convert(sender: AnyObject) { } というコードが、自動的に挿入されます。
最後に、エディタエリアを一つの画面に戻します。次の図の、マウスポインターの位置を参考にして、スタンダードエディタ (Standard editor) ボタンをクリックしてください。エディタエリアが一つの画面に戻ります。
ViewController.swift
ナビゲータエリアで、ViewControler.swift を選択すると、エディタエリアに、ViewController.swift のコードが表示されます。
ここまでの作業で、ViewController.swift のコードは、次のリストのようになっています。太字部分が、ビューとコードを、接続することによって、自動的に挿入されたコードです。なお、リストの冒頭のコメント部分は、省略しています。
import Cocoa class ViewController: NSViewController { @IBOutlet weak var rateField: NSTextField! @IBOutlet weak var dollarField: NSTextField! @IBOutlet weak var amountField: NSTextField! @IBAction func convert(sender: AnyObject) { } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } override var representedObject: AnyObject? { didSet { // Update the view, if already loaded. } } }
- @IBOutlet weak var rateField: NSTextField!
- このコード全体で、ViewController クラスの、プロパティ (property、属性) を定義しています。@IBOutlet は、このコードがアウトレットであることを表しています。weak は、このプロパティが、弱い参照関係を持っていることを表しています。var は、このプロパティが変数であることを表しています。rateField は、このプロパティの名前です。:NSTextField! は、このプロパティが、NSTextField のオプショナル型であることを表しています。
- @IBOutlet weak var dollarField: NSTextField!
- このコード全体で、ViewController クラスの、プロパティ (property、属性) を定義しています。@IBOutlet は、このコードがアウトレットであることを表しています。weak は、このプロパティが、弱い参照関係を持っていることを表しています。var は、このプロパティが変数であることを表しています。dollarField は、このプロパティの名前です。:NSTextField! は、このプロパティが、NSTextField のオプショナル型であることを表しています。
- @IBOutlet weak var amountField: NSTextField!
- このコード全体で、ViewController クラスの、プロパティ (property、属性) を定義しています。@IBOutlet は、このコードがアウトレットであることを表しています。weak は、このプロパティが、弱い参照関係を持っていることを表しています。var は、このプロパティが変数であることを表しています。amountField は、このプロパティの名前です。:NSTextField! は、このプロパティが、NSTextField のオプショナル型であることを表しています。
- @IBAction func convert(sender: AnyObject) { }
- このコード全体で、ViewController クラスの、メソッド (method、方法) を定義しています。@IBAction は、このコードがアクションであることを表しています。func は、このメソッドが、ファンクション (function、関数) であることを表しています。convert は、このメソッドの名前です。(sender: AnyObject) は、このメソッドが、sender という名前の、AnyObject 型の引数を持っていることを表しています。そして、このメソッドが、実際に行う作業を、{ と } の間に記述します。ここではまだ、実際に行う作業は、記述されていません。
お疲れ様でした。
次章では、covert メソッドを実装します。実装とは、メソッドが実際に行う作業を、記述することです。
無断転載禁止 Copyright 2016. vivacocoa.jp All right reserved.