我真的不明白cocoa在通知和事件之间的区别。
例如,我可以使用这样的代码:
-(void)mouseMoved:(NSEvent*)event { … }
但不是
-(void)windowMoved:(NSEvent*)event { … }
对于第二个,我必须使用NSNotification
- 为什么?
答案 0 :(得分:6)
不同之处在于,NSEvent用于封装输入事件。鼠标按下,按键等 但是,NSNotification用于通知观察者状态或对象的更改(例如,当网络可达性发生变化,新数据可用或窗口移动时)。
在你的情况下:窗口移动不是某种输入,而是窗口位置的改变。因此,您获得NSNotification而非NSEvent。