Schriftfarbe in Listbox

Hallo in die Runde.
Mal wieder treffe ich auf ein bekanntes Problem. Ich habe die Systemeinstellung für Auswahlfrabe (für z. B. die selektiere Listboxzeile) auf Gelb gestellt. Nun wird der Text einer selektierten Zeile in der Listbox in weiß ausgegeben. Weiß auf gelben Grung ist nicht sonderlich gut erkennbar.
Bislang habe ich das umgangen, indem ich in CellTExtPaint den Text selbst in schwarz ausgebe.

Gibt es eine bessere Lösung?

Welches ist eigentlich die übliche Selectionsfarbe bei Mac OS?

Blau

Früher konnte der Benutzer in OSX die Selektionsfarbe ändern, weiss nicht ob das noch so ist.

Die Farben sind immer über eine Konstante zu holen, was über declares problemlos geht. Ich würde mal im Forum suchen.

Unter selectionHighlightStyle gibt es mehr Informationen dazu.

Es ist möglich, die Farbe und die Auswahl in MacOS X zu ändern.

I checked AppleScript.

Daher muss die Farbe auch vor jedem Aufruf neu über das OS abgefragt werden.

Beispiel:

Declare Function selectedControlColor Lib "Cocoa" selector "selectedControlColor" (ob_id As Ptr) As Ptr

Tatschlich habe ich nicht verstanden, warum ich die “Highlight-Farbe” ndern mchte.

@Emile Schwarz
Ich finde das normale Blau nicht sonderlich hervorgehoben und meine, dass gelb deutlicher ist.

Zu den anderen Kommentare scheint es immer um die Hintergrundfarbe zu gehen und nicht um die Schriftfarbe.

Auch ein Dunkelblau (wie es Windows als Selektionsfarbe nutzt) ist nicht günstig bei schwarzer Schrift. Wird da nicht automatisch auf weiße Schrift umgestellt?
Ich habe gerade heute von einem Anwender gemeldet bekommen, dass man unter Windows 8 und Windows 10 die Selektionsfarbe nicht mehr so einfach umstellen kann.

Ich habe verstanden.

… und in ähnlicher Form gibt es auch selectedTextColor als Klassen-Property von NSColor, das dann einen OS-berechneten Wert für eine zur Auswahlfarbe gut kontrastierende Textfarbe liefert. Auf dem Mac und im Hinblick auf den kommenden Dark Mode dürfte das die beste Wahl sein.
(Nicht zu vergessen, dass die Auswahlfarbe auch unter Systemen < Mojave frei definierbar ist und war – einen festen Wert sollte man also besser nicht nehmen, sofern man nicht die komplette Listbox-Gestaltung inkl. CellBackground übernimmt.)

Nun ja, Kontrast wird heute überbewertet. Apple hat mir schon einige Bug-Reports geschlossen, bei denen ich den Text wegen mangelndem Kontrast nicht lesen konnte. Und auf Webseiten ist das doch auch modern mit hellgrau auf weiß.

:smiley:

Diese Benutzer sind zu jung, um diese Sehprobleme zu verstehen (zu geringe Kontraste zwischen der Hintergrundfarbe und der Schrift).
Dass sie medizinische Spezialisten fragen!

Ich schliee mich den Kommentarenb an.
Wie schon geschrieben, nutze ich Gelb als Auswahlfarbe. Mac OS setzt die Schriftfarbe dann auf Wei. Das empfinde ich als zu wenig kontarstreich.
Schade, dass man die Schriftfarbe nicht ebenfalls selbst whlen kann. Wre ja auch zu einfach.

Und erst einmal der App Store…
Wieso ist die Schrift sooo klein und man kann da nichts vergrößern? Toller Trick.

Was meiner Ansicht nach ein no-go ist. Ein Programm hat die im OS definierten Farben zu nutzen. Der Anwender hat sich die nach seinem Geschmack gesetzt.

[quote=397051:@Thomas Eckert] @Stefan Mettenbrink Wie schon geschrieben, nutze ich Gelb als Auswahlfarbe

Was meiner Ansicht nach ein no-go ist. Ein Programm hat die im OS definierten Farben zu nutzen. Der Anwender hat sich die nach seinem Geschmack gesetzt.[/quote]

Du hast mich missvertanden. Ich habe in den Systemeinstellungen die Auswahlfarbe auf gelb gesetzt. Das ist dann auch die Farbe, in der der Finder die ausgewählten Dateien markiert. Diese Farbe wird in den ListBoxen dann ebenfals als Auswahlfarbe genutzt.
Nur für die Schriftfarbe gibt es keine Systemeinstellung. Die setzt das System dann auf Weiß.

Wo ist da das no-go?

Dann ist es ja Ok. Ich dachte das Programm nutzt eine eigene Farbe am OS vorbei.

Der Benutzer, der das Problem hat, was macht er mit anderer Software?

Du kannst Die Farbe für den Text im textPaint Event einstellen.
Beim NSColorMBS gibt es ja Textfarben für Listen.
selectedTextColor vermutlich. Die könnte man ja dann nehmen für den Text.