< Zurück

11.12.2012 23:29:00 • Categories: Applescript, ASObjC • Tags: Applescript, Asobjc, Xcode

ASObjC: Actions (sender)

Actions sind der nächste Schritt um ASOC Programme zu schreiben. Outlets schaffen die Möglichkeit aus dem Programmcode auf UI Elemente zuzugreifen.

Actions im Gegenzug rufen Methoden auf die bei einem UI Ereignis z.B. ein Klick auf einen Button ausgelöst werden.

Diese werden wie folgt in der Klasse definiert:

-- controller.applescript
-- asoc_01

-- Created by Christian Sonntag on 11.04.10. -- Copyright 2010 MyCompanyName. All rights reserved.

script controller property parent : class "NSObject"

--Outlet property textField : missing value

--Action on doSomething(sender) end doSomething

end script

asoc_action_001

So, ab in den Interface Builder. Aus der Library wird ein NSButton unserer Wahl ins Fenster gezogen, positioniert, angepasst und mit einem schönen Namen versehen.

asoc_action_002

Nun muss dem Button auch eine Action aus der Klasse zugewiesen werden. Mit gedrückter rechter Maustaste ziehen wir eine Verbindung von dem Controller Objekt auf den neu positionierten NSButton und lassen die rechte Maustaste los.

asoc_action_003

Auch hier erscheint wieder ein kleines schwarzes Fenster das alle vorhandenen Methoden aus der Klasse anzeigt. Hier wählen wir "doSomething" aus.

asoc_action_004

Zum Abschluss kann alles natürlich noch mal geprüft werden. Bei ausgewähltem NSButton schauen wir nun im Inspector im vorletzten Reiter unter "Sent Actions", und siehe da dort ist "doSomething" zu sehen.

So jetzt hauchen wir dem ganzen noch etwas Leben ein, siehe unten. Denn nach dem kompilieren passiert nämlich gar nix. Als Beispiel lassen wir nun einen Warnton ausgeben, eine Variable wird hoch gezählen, die im Anschluss mit einem "Hello World!" im NSTextField ausgegeben wird.

Fürs erste sind die wichtigsten Basics erklärt auf die man weiter aufbauen kann.

-- controller.applescript
-- asoc_01

-- Created by Christian Sonntag on 11.04.10. -- Copyright 2010 MyCompanyName. All rights reserved.

script controller property parent : class "NSObject"

property |count| : 1

--Outlet property textField : missing value

--Action on doSomething(sender) beep textField's setStringValue("Hello World! (" & |count| & ")") set my |count| to (my |count|) + 1 end doSomething_

end script

[wpdm_file id=10]


< Zurück | ^ nach oben