On Tue, May 8, 2012 at 6:33 PM, Fritz Anderson <fri...@manoverboard.org>wrote:

>
> I'll get this wrong if I answer in the amount of time I have. Look up
> "responder chain" in the Mac OS X documentation.
>
> To oversimplify:
>
> Menu commands typically go to the "first responder" — whatever has the UI
> focus. If the focused object doesn't implement the menu item's method, the
> event system shops the event up a logical hierarchy called the "responder
> chain" (e.g. text field -> window -> document -> application) until it
> finds an object that does implement the command. The first object that
> implements the command executes it.
>
> File > Save Document sends saveDocument: to the first responder. Because
> the chain goes from bottom up, the saveDocument: message arrives at the
> document object directly, without mediation from the application's document
> controller.


Thanks.

I apologize but I still don't quite understand. If I just
implement saveDocument: at the document and leave document controller
without it, the menu item is still disabled. When I add saveDocument: to
the controller as well, it works. I mean, if I try to visualize it, if I
just alloc:init: a document it just floats there in memory, how would a
menu know about it? So I need to create it via the document controller, no?
If this is the case, how to propagate the saveDocument: event though
the document controller to the document?

To put it differently, you seems to be saying that that the responder chain
flows the other way than what I thought. Ok, but then how does it know
about the document? When I were doing this in Xcode, I would just connect
the menu item to the first responder and the document from IB would receive
the saveDocument:, right? But there has to be a document controller, I
imagine it is somehow "implied" or "implicit" as in not exposed to the
user, which does the heavy lifting, do I understand this correctly? If so,
what exactly does this document controller do?

I'm sorry for such basic questions I'm very new to all this.
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to