《Cocoa编程开发者手册》第五章

autorelease对象

主nib文件的名字不是硬编码出来的,是从程序资源包(bundle)里的属性列表中查出来的。

cocoa里面有很常见的模式。事件会有 

“should”:询问委托是否应该处理该事件

 “will”:事件将要发生

 “did”:事件已经完成

三个形式。

-(void)applicationwillfinishlaunching:(nsnotification*) anotification

-(void) applicationdidfinishlaunching:(nsnotification*)anotification

视图类会处理nsevent,然后它们调用委托方法,或者给控制器里的目标发送活动消息,或者发出一个通知。控制器响应活动消息,并调用起模型对象。模型对象则会发送通知。

nsevent的-addlocalmonitorforeventsmatchingmask:handler:方法接收一个代码块作为第二个参数。任何事件被发送以前,都会先经过这个代码块,而实际发送给应用程序的事件是这个代码块返回的。

传递活动消息要比一般的消息稍微复杂一点。nsresponder里定义的每个事件消息都有一个默认的实现,它只是调用链条里的下一个响应者。而如果你发送一个dosomething:消息给首先响应者,会收到一个异常报告。说首先响应者不理解这类消息。

活动传递实际上是nsapplication的-sendaction:to:from方法处理的。它从键盘窗口的首先响应者开始,沿响应者链向上直到找到键盘窗口。但后它去找主窗口的首先响应者,然后再向上遍历它的响应者链。

对于活动的每个可能的目标,它会发送-respondstoselector消息看看目标是否理解该消息。如果理解,就发送活动,否则去响应者链的上层,跟普通的响应者链一样,如果没有视图能处理,nsapp及其委托会是这处理消息。

视图的坐标系是从左下角开始的(0,0) 坐标值向右上角增大

你可能感兴趣的:(《Cocoa编程开发者手册》第五章)