2009-04-25 19 views
1

Ich habe ein einfaches NSWindow mit einem NSTextField und einem NSButton in Interface Builder auf Leopard erstellt. Ich stelle die Fensterhintergrundfarbe in meinem Programm ein. Alles sieht gut aus, wenn ich das Programm in Leopard starte. Aber wenn ich es in Tiger starte, ist die Hintergrundfarbe des Fensters nicht eingestellt. Es hat einen Standard-Tiger-Look mit horizontalen Streifen.Warum sieht der in Leopard erstellte Dialog in Tiger schrecklich aus?

Seltsamerweise werden die Hintergrundfarben der NSTextField- und NSButton-Steuerelemente auf die angegebene Fensterfarbe eingestellt, sodass sie wirklich schrecklich aussehen.

Wie kann ich Tiger davon überzeugen, die Farbe zu respektieren, die ich im setBackgroundColor-Aufruf gewählt habe?

+0

Wenn Sie für frühere Betriebssystemversionen bauen, stellen Sie sicher, dass Sie Ihr Ziel wie in IB festgelegt haben und achten Sie auf die Warnungen ;-) –

Antwort

2

Wenn ich mich richtig erinnere, musste man unter Tiger das Hintergrundmuster des Fensters einstellen, wenn man seine Farbe ändern wollte - die 'Farbe' wurde durch das (hässliche) Standard-Aqua-Muster überschrieben.

Auf der anderen Seite, warum zum Teufel schreiben Sie Code für Tiger? So etwas wie 0,3% der Maschinen draußen laufen Tiger, und so etwas wie 100% von denen werden von Luddites ausgeführt.

+0

Ich liebe alle meine Kunden, sogar die Luddites. Aber jetzt, da Tiger zwei große Releases alt sind, werden wir die Unterstützung dafür auslaufen lassen. – gauss256

1

Ich denke, der Interface Builder erzeugt irgendwo nur einen Leopard-Styling-Code (gültig, aber nicht funktional in api oder so), versuchte es auf dem Tiger-Rechner zu erstellen und zu sehen, wie es in Leopard aussieht.

+1

Interface Builder erzeugt keinen Code; es erzeugt archivierte Objekte. –