FIXME: this example should be replaced with a better one.
FIXME: add examples of advanced outlets.
<?xml version="1.0"?> <!DOCTYPE gsmarkup> <gsmarkup> <objects> <!-- the main window --> <window title="Calculator" resizable="no" closable="no"> <vbox> <textfield editable="no" id="TextField" /> <hbox> <button title="1" target="#Controller" action="digit:" /> <button title="2" target="#Controller" action="digit:" /> <button title="3" target="#Controller" action="digit:" /> </hbox> <hbox> <button title="4" target="#Controller" action="digit:" /> <button title="5" target="#Controller" action="digit:" /> <button title="6" target="#Controller" action="digit:" /> </hbox> <hbox> <button title="7" target="#Controller" action="digit:" /> <button title="8" target="#Controller" action="digit:" /> <button title="9" target="#Controller" action="digit:" /> </hbox> <hbox> <button title="+" target="#Controller" action="add:" /> <button title="0" target="#Controller" action="digit:" /> <button title="=" target="#Controller" action="total:" /> </hbox> </vbox> </window> <!-- an object of a custom class, which is instantiated when the nib is loaded. Key-value coding is used to set textField to #TextField. In other words, the textField attribute is equivalent to having a NSNibOutletConnector with source #Controller, target #TextField, and key textField --> <instance instanceOf="CalculatorController" id="Controller" textField="#TextField" /> </objects> <!-- in this example, connectors are not actually needed (or better all connectors are embedded in the objects section) - but we add the connectors section as an example. --> <connectors> <!-- an example of a standalone connector, needed to connect the Controller to the controller ivar (or setController: method) of the NSOwner (the object which loaded the nib). This connector must be standalone because #NSOwner is not inside the nib. (you can reference objects totally outside the nib in a connector, which are provided by the nameTable dictionary when the nib is loaded) --> <outlet source="#NSOwner" target="#Controller" key="controller" /> </connectors> </gsmarkup>