コントロールオブジェクト
コントロールは、ユーザーがボタンをクリックしたり、スライダをドラッグするなどの特定の方法で別のオブジェクトにメッセージを送信する、ユーザーインターフェイスの中のビューのタイプです。コントロールは、ターゲット·アクションモデル内のエージェントです。コントロール(または OS X ではコントロールセル) は、メッセージを送信するために必要な情報を2つのビットで格納します:メッセージを受け取る為のオブジェクト(ターゲット) とターゲット(アクション) を特定し引き起こす為のメソドを識別するセレクタです。ユーザが特定の方法でコントロールを操作すると、それはアプリケーションオブジェクトにメッセージを送信し、ターゲットにアクションメッセージを転送します。
コントロールの抽象基本クラスは、UIKit フレームワークでは UIControl で、AppKit フレームワークでは、NSControl です。すべてのコントロールは、これらの基本クラスの具象サブクラスのインスタンスです。これらのフレームワークのコントロールの一般的なタイプは、ボタン、スライダ、およびテキストフィールドです。UIKit と AppKit もそれぞれのプラットフォームに固有のコントロールがあり、例えば、ページコントロール(UIKit) とカラーウェル(OS X) です。
AppKit ではコントロールは複数のセルを持てます
AppKit フレームワークのほとんどのコントロールは、それらに関連する複数のセルオブジェクトを持っています。セルは NSCell から直接または間接的に継承したクラスのインスタンスです。その主な役割は、そのコントロールのためのターゲットオブジェクトとアクションセレクタを格納することです。セルはビューではありませんが、それはそれ自身を描画し、イベントに応答しますが、そのコントロールから指示があった場合のみです。コントロールセルアーキテクチャ において、コントロールは、そのセル(又は複数のセル) のための正面図であり、それはセルの挙動を管理し、構成し、その独特のユーザイベントが発生したときにアクションメッセージを送信します。
UIKit では、コントロールイベントはアクションメッセージが送られた時を決定する
コントロールイベントは、コントロールの UIKit フレームワーク設計の側面です。UIKit では、ターゲットとアクションセレクタはアクションメッセージの形式を決定しますが、複数のコントロールイベントは、また、メッセージが送信される ときを 決定し、コントロールにも関連付けられています。コントロールイベントは、タッチ(例えば、UIControlEventTouchUpInside)、セッション編集相(例えば、UIControlEventEditingDidEnd)、または値の変更(UIControlEventValueChanged) の動作を表す列挙定数(enum constant) です。一つのコントロールで複数のコントロールイベントを関連付けることができ、これらの定数のいずれかひとつで表されるアクションが発生した場合、コントロールはターゲットにアクションメッセージを送信します。
一部のコントロールには、特定のコントロールイベントが設定されている必要があります。例えば、 UIControlEventValueChanged コントロールイベントが成立したときにのみ、UISwitch オブジェクトが、アクションメッセージを送信します。
前提条件の記事
関連記事
既知のディスカッション
コントロールとセルのプログラミングトピックス
サンプルコードプロジェクト
ClockControl
DatePicker