ASS: Drawer Inhalt tauschen

L

little_pixel

Aktives Mitglied
Thread Starter
Dabei seit
06.06.2006
Beiträge
4.706
Reaktionspunkte
1.658
Hallo,

ich möchte gerne den Inhalt eines Drawers verändern.
Mein Drawer zeigt auf ein View Element. Durch klicken eines Buttons, soll der Drawer auf eine anderes View Element zeigen.

Hat jemand hierfür schon eine Lösung umgesetzt, oder kennt einen Link?

Danke!

Viele Grüße
 
little_pixel schrieb:
ich möchte gerne den Inhalt eines Drawers verändern.
Mein Drawer zeigt auf ein View Element. Durch klicken eines Buttons, soll der Drawer auf eine anderes View Element zeigen.
Hab ich leider nicht verstanden :rolleyes:
Was heißt "Mein Drawer zeigt auf ein View Element ?"
Oder willst Du per Script den Inhalt des View Objektes verändern (aber der Drawer bleibt immer der gleiche) ?

Farid
 
Hallo,

entschuldige, leider habe ich mich schlecht ausgedrückt.
Ich möchte genau das erreichen, wie in Deiner Frage geschrieben ist.
Ein Drawer dessen Inhalt (View Element) über z.B. ein "on click" geändert werden soll.

Danke!

Viele Grüße
 
Gesetzt den Fall, daß es sich bei dem View Objekt um ein Image View handelt und die nötigen Image Resources in Deinem Projekt angelegt worden sind, reicht im on clicked theObject Handler für Deinen Button eine Anweisung wie:
PHP:
set image of image view "NameImageView" of drawer "NameDrawer" of window "NameWindow" to load image "NameImageFile"
Wahrscheinlich mußt Du in Deinem Code auch irgendwo abspeichern (z.B. mittels eines Zählers/Indexes) welches das aktuell präsentierte Bild ist, um dann per Knopfdruck das nächste zu laden.
Siehe auch: http://developer.apple.com/document...nce/index.html#//apple_ref/doc/uid/TP30000892

Frohes scripten
Farid
 
Hallo,

nochmals vielen Dank für die Antwort.
Also mit dem Drawer stelle ich mich sehr schwer an.

Ich möchte gerne in Erfahrung bringen, welcher Drawer offen ist.
Dann möchte ich den Namen herausfinden, und den aktuellen Drawer schließen.

Code:
		set zustandDrawerOffen to drawer opened
		set nameDrawer to drawer name of zustandDrawerOffen

		delay 3

		if (zustandDrawerOffen is equal to drawer opened) then
			tell drawer nameDrawer to close drawer
		end if
[CODE]

Es ist mir leider nicht möglich :-(

Viele Grüße
 
Okay, ich habe in Erfahrung gebracht, dass der Name scheinbar nicht "auslesbar" sei.

Vielleicht gibt es eine Anweisung, die sinngemäß lautet:

Schließe den aktuell geöffneten Drawer.

Viele Grüße
 
little_pixel schrieb:
Okay, ich habe in Erfahrung gebracht, dass der Name scheinbar nicht "auslesbar" sei.
Doch, doch, das ist er ;)
Ganz primitives Beispiel: ein Fenster, zwei Drawer (links, rechts), drei Buttons (links, rechts, toggle).
Der "Links" Button öffnet den linken Drawer sofern er vorher geschlossen war und umgekehrt, der "Rechts" Button das gleich in grün, der "Toggle" Button wechselt zwischen links-rechts aufundzu.
Außerdem ein Textfeld "openDrawers", in das die Namen der aktuell offenen Drawer geschrieben werden:

PHP:
property openDrawers : {}

on clicked theObject
	if name of theObject = "leftButton" then
		if state of drawer "leftDrawer" of window "main" = drawer closed then
			tell drawer "leftDrawer" of window "main" to open drawer
		else
			tell drawer "leftDrawer" of window "main" to close drawer
		end if
		
	else if name of theObject = "rightButton" then
		if state of drawer "rightDrawer" of window "main" = drawer closed then
			tell drawer "rightDrawer" of window "main" to open drawer
		else
			tell drawer "rightDrawer" of window "main" to close drawer
		end if
		
	else if name of theObject = "toggleButton" then
		if state of drawer "leftDrawer" of window "main" = drawer closed then
			tell drawer "leftDrawer" of window "main" to open drawer
			tell drawer "rightDrawer" of window "main" to close drawer
		else
			tell drawer "leftDrawer" of window "main" to close drawer
			tell drawer "rightDrawer" of window "main" to open drawer
		end if
	end if
	delay 1 -- komischerweise braucht AppleScript eine Sekunde Pause, bevor es die offenen Drawer korrekt ermitteln kann
	my drawerInfo()
end clicked

on drawerInfo()
	set theDrawers to every drawer of window "main"
	repeat with aDrawer in theDrawers
		if state of aDrawer = drawer opened then
			set end of openDrawers to (name of aDrawer)
		end if
	end repeat
	set contents of text field "openDrawers" of window "main" to (every item of openDrawers)
	set openDrawers to {}
end drawerInfo

Ich hoffe, das Beispiel hilft Dir ein wenig weiter, wenn Du willst, schicke ich Dir das xCode-Projekt zu.

Frohes Scripten
Farid
 
Hallo,

das ist genau das was ich gesucht habe. (Handler on drawerInfo())

Viele Dank, echt super!
Ich habe Heute drei Stunden damit verbracht eine Lösung zu finden.
Jetzt ist alles gut :)

Viele Grüße
 
Zurück
Oben Unten