• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Toolbar wie Buttons

schnydi

James Grieve
Registriert
08.01.06
Beiträge
137
Hallo miteinander

In meinem Programm habe ich statt Tab's eine Toolbar für die Auswahl der Kategorien kreiert. Inspiriert hat mich dazu die Toolbar's von anderen Programmen.
Leider kriege ich es nicht hin, dass die tabview items beim Click darauf markiert bleiben (on/off funktion von normalen buttons).

Beispiel von EyeTV Preferences Toolbar:
Bild 1.png

Beispiel von einer normalen Toolbar (von meinem Progi):
Bild 2.png

Der Hintergrund des ausgewählten toolbar item von EyeTV ist dunkelgrau, bei mir leider nicht :(

Natürlich sollte auch der "Toolbar ausblenden" button verschwinden.

Leider wurde ich auch auf den Developer Pages nicht fündig. Aber vieleicht hat jemand von euch schon einmal das gleiche versucht. Danke im voraus.
 
Zuletzt bearbeitet:

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Da gibt's in AppleScript eine toolbar-Eigenschaft namens "selected item identifier". Guckst Du hier.

Verrueckt, was man mit AppleScript inzwischen alles machen kann...
 

schnydi

James Grieve
Registriert
08.01.06
Beiträge
137
Mit der Eigenschaft "selected item identifier" kann man das ausgewählte "Toolbar item" ausgeben lassen, aber nur solange man darauf klickt.

Was ich möchte ist, dass nach dem klick auf ein "toolbar item" sich der Hintergrund desselben items dunkelgrau färbt, wie bei der ersten angehängten Grafik von EyeTV das "toolbar item" : "Allgemein".
Ausserdem sollte die Toolbar nicht mehr ausgeblendet werden können.
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Mit der Eigenschaft "selected item identifier" kann man das ausgewählte "Toolbar item" ausgeben lassen, aber nur solange man darauf klickt.
Erstaunlich. Es klang halt so aehnlich wie die NSToolbar-Methoden [NSToolbar setSelectedItemIdentifier:] und [NSToolbar selectedItemIdentifier], die genau das machen, wonach Du gefragt hast.

Untypisch fuer Apple, solche Inkonsistenzen...
 

schnydi

James Grieve
Registriert
08.01.06
Beiträge
137
Erstaunlich. Es klang halt so aehnlich wie die NSToolbar-Methoden [NSToolbar setSelectedItemIdentifier:] und [NSToolbar selectedItemIdentifier], die genau das machen, wonach Du gefragt hast.

Werde zwar nicht ganz schlau daraus aber:
Code:
tell toolbar of window id 8 
      set selected item identifier to toolbar item id 55
end tell
hat die antwort : NSUnknownKeyScriptError

Oder bin ich schief gewickelt? :p
 

schnydi

James Grieve
Registriert
08.01.06
Beiträge
137
@Peter Maurer:

Du hattest absolut recht. Nur meine daraus resultierende Lösung war falsch.
Es sollte lauten:
Code:
tell toolbar of window "preferences"
     set selectable identifiers to (identifier of toolbar items as list)
end tell
und schon funktioniert es! Keine Ahnung wieso ich nicht selbst darauf gekommen bin.
Vielen Dank!!!

Jetzt müsste ich nur noch den Button für das ausblenden der Toolbar wegkriegen und schon bin ich happy! Aber ich bin überzeugt auch dass lässt sich machen.
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Freut mich sehr. Und als "falsch" wuerd' ich das gar nicht zwingend bezeichnen. Du brauchst halt eigentlich beides -- naemlich eine gewisse Menge an "selectable" Toolbar-Items, und dann noch einen, der tatsaechlich "selected" ist. Unter Objective-C/Cocoa ist es genauso; und ich hab' schlicht vergessen, das zu erwaehnen.

Letzteres ("selected") macht die AppleScript-Toolbar-Implementierung, die u.U. nichts weiter als eine getarnte Cocoa-Toolbar ist, wahrscheinlich alleine, wenn die Voraussetzungen stimmen.

Und den Ausblendknopf wuerd' ich schlicht stehenlassen. Warum den Nutzer bevormunden? Der will damit ja u.U. nicht nur ausblenden, sondern vielleicht auch nur die Anzeigevariante aendern.