nextReponsder
プロパティのチェックはNSResponder
です。このプロパティはレスポンダチェーンを定義します。通常、Cocoaフレームワークで定義されたレスポンダの変更に合わせて自動的に設定されますが、チェインを別の方向に挿入/スキップ/迂回するように変更できます。
たとえば、ある時点(私に質問しないでください)で、Cocoaはウィンドウのコントローラを応答側チェーンに含めて開始しました。
- (void)windowDidLoad
{
// Sent when the controller's window has been loaded from the nib
[super windowDidLoad];
NSWindow* window = self.window;
// Make sure this window controller is in the responder chain
NSResponder* nextResponder = window.nextResponder; // get our window's next responder
if (nextResponder!=self)
{
// running earlier OS X that does not include the window controller in the chain: patch us in
self.nextResponder = nextResponder;
window.nextResponder = self;
}
-windowDidLoad
、-viewDidLoad
、および-awakeFromNib
は、彼らが含まれてレスポンダチェーンを調整するためにすべての良い場所で、または:私のアプリはMacOSのすべてのバージョンで一貫して動作するように、私はこの私の窓のコントローラーのようなコードが含まれます必要なオブジェクトを除外します。