< Zurück

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

ASObjC: Actions (aNotification)

Bis jetzt haben wir alles durch Outlets, Actions und Bindings. Nur was ist zu tun wenn zum Beispiel der User den Wert eines Textfeldes öndert und wir darauf reagieren wollen?

Im Prinzip kann dies mit einer Action geschehen. Nur wird diese nicht mit (sender) definiert, sondern mit (aNotification). Siehe Methode somethingsChanged_(aNotification).

-- controller.applescript
-- asoc_03

-- 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 property textFieldToChange : missing value

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

on somethingsChanged(aNotification) set temp to textFieldToChange's stringValue() set temp to temp as string display alert "textField changed to: " & return & temp end somethingsChanged

end script

asoc_notification_001

Wir erweitern nun wieder unser Beispiel um ein weiteres Label und ein Textfield.

asoc_notification_002

Wieder ziehen wir mit gedrückter rechten Maustaste vom NSObject Controller eine Verbindung zum neuen Textfeld.

asoc_notification_003

Nach dem loslassen der Maustaste wird wieder das kleine graue Fenster angezeigt. In diesem Fall wählen wir nun das Outlet "textfieldToChange".

asoc_notification_004

Nun muss für die Notification eine Verbindung zur Klasse hergestellt werden. Vom Textfeld ausgehend wird nun mit gedrückter rechten Maustaste eine Verbindung zum NSObject Controller definiert.

asoc_notification_005

Wieder erscheint die Auswahl der vorhandenen Methoden und wir wählen "somethingsChanged".

[wpdm_file id=12]


< Zurück | ^ nach oben