1

ココアが通知とイベントの違いをよく理解していません。

たとえば、次のようなコードを作成できます。

-(void)mouseMoved:(NSEvent*)event { … }

だがしかし

-(void)windowMoved:(NSEvent*)event { … }

2つ目は、使用する必要がありますNSNotification –なぜですか?

4

1 に答える 1

6

違いは、NSEventが入力イベントをカプセル化するために使用されることです。マウスダウン、キーダウンなど。ただし、NSNotificationは、状態またはオブジェクトの変更についてオブザーバーに通知するために使用されます(たとえば、ネットワークの到達可能性が変更されたとき、新しいデータが利用可能になったとき、またはウィンドウが移動したとき)。

あなたの場合:ウィンドウの移動はある種の入力ではなく、ウィンドウの位置の変更です。したがって、NSEventではなくNSNotificationを取得します。

于 2010-12-23T10:05:00.413 に答える