NSNotification和NSEvent之间的区别

时间:2010-12-23 09:56:10

标签: objective-c cocoa nsnotification nsevent

我真的不明白cocoa在通知和事件之间的区别。

例如,我可以使用这样的代码:

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

但不是

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

对于第二个,我必须使用NSNotification - 为什么?

1 个答案:

答案 0 :(得分:6)

不同之处在于,NSEvent用于封装输入事件。鼠标按下,按键等 但是,NSNotification用于通知观察者状态或对象的更改(例如,当网络可达性发生变化,新数据可用或窗口移动时)。

在你的情况下:窗口移动不是某种输入,而是窗口位置的改变。因此,您获得NSNotification而非NSEvent。