Overview 概要
You use delegates to interact with Cocoa objects that inform you of events in an app. あなたは委任先を使って、あるアプリの中のイベントについてあなたに告知するCocoaオブジェクトと相互作用します。
Adopt a Delegate Protocol 委任先プロトコルを採用する
Cocoa APIs often provide protocols that include delegate methods. When an event occurs—such as a user resizing a window—a class that's a delegator will detect the event and call delegate methods on the class you specify as the delegate. Delegate methods can customize how an app responds to an event. Cocoa APIは、しばしば委任先メソッドを含むプロトコルを提供します。イベントが発生する場合 — 例えばユーザがウインドウをリサイズするなど — 委任元であるクラスはイベントを検出します、そしてあなたが委任先として指定するクラス上で委任先メソッドを呼び出します。委任先メソッドは、どのようにアプリがイベントに応答するかをカスタマイズできます。
The example below adopts the NSWindow
protocol and implements its window(_:
method:
下の例は、NSWindow
プロトコルを採用します、そしてそれのwindow(_:
メソッドを実装します:
Check That Delegates Exist その委任先が存在するか確認する
The Cocoa delegation pattern doesn't require that delegates are instantiated. If you don't need to respond to events, you don't need to create a delegate. Before you call a method on an object's delegate, make sure that the delegate isn't nil
.
Cocoa委任パターンは、委任先がインスタンス化されることを要求しません。あなたがイベントに応答することを必要としないならば、あなたは委任先を作成する必要はありません。あなたがメソッドをオブジェクトの持つ委任先で呼び出す前に、委任先がnil
でないことを確実にしてください。
The example below creates an NSWindow
and uses optional chaining to check that the window's delegate exists before sending a message to the delegate.
下の例は、NSWindow
を作成して、オプショナル連鎖を使うことで、ウインドウの持つ委任先が存在することを、メッセージをその委任先に送る前に確認します。