Frage

Nachdem ich das BaseSDK meines Projekts auf 10.6 geändert hatte, bemerkte ich, dass mein benutzerdefinierter gezeichneter Text anders aussieht (sehen Sie sich die Bilder an:der gleiche Code zum Zeichnen)

Unter 10,5 Basis-DK:bild1

Unter 10,6 Basis-DK:bild2

Ich zeichne mit [(NSString *)myString drawInRect:myRect withAttributes:myAttributes] .

myAttributes = [[NSMutableDictionary alloc] initWithObjectsAndKeys: [NSColor myColor], NSForegroundColorAttributeName, [NSFont systemFontOfSize:18], NSFontAttributeName, paragraphStyle, NSParagraphStyleAttributeName, shadow, NSShadowAttributeName, nil];

Was ist der Grund für einen solchen Unterschied oder wie kann man die Dicke der Schrift reduzieren?Ich habe versucht, die Dicke um zu reduzieren

[NSFontManager convertWeight:NO ofFont:font]

aber es sieht nicht viel besser aus...

Danke im Voraus.

War es hilfreich?

Lösung 2

Jetzt kenne ich den Grund, warum es passiert, und das Problem dieses Problems: Es scheint, dass mit 10.6 die Option mit 10.6 hinzugefügt wurde

Deshalb wurde nach dem Ändern des Basedk des Projekts auf 10.6 Texte in der Anwendung LCD-Stil geglättet und sah überhaupt schlecht aus.

Das Fix des Problems im Code besteht darin, die Glättungsoptionen in Grafikkontext vor unseren Zeichnungen zu ändern: generasacodicetagpre.

Die Dokumentation dieser Methode sagt uns, dass dieser Parameter Teil des Grafikstatus ist. Wenn Sie diese Option nicht in anderen Schriftzeichnungen ändern möchten, sollten Sie den Grafikstatus wiederherstellen.

dank @nsgod, um den Grund dieses Problems zu finden.

Andere Tipps

Wenn wir hineinzoomen und beide Bilder genau betrachten, werden wir sofort einen Unterschied bemerken (zumindest ich):

enter image description here

Der Text im oberen Bild verwendet die Schriftglättung im CRT-Stil, während der Text im unteren Bild die mittlere Schriftglättung im LCD-Stil verwendet.(Alle 3 Stile der LCD-Schriftglättung führen Farbstiche in die Anti-Aliasing-Pixel ein).

Wir benötigen weitere Informationen zu Ihrem Testaufbau, um sagen zu können, warum dies geschieht.Unter welchen Versionen von OS X testen Sie dies mit?Wurde Ihre App beispielsweise gegen das 10.6 SDK mit einem Bereitstellungsziel von 10.5 erstellt, wurde das obere Image beim Testen unter OS X 10.5 aufgenommen.x (auf demselben Computer), und das untere Bild wurde beim Testen unter 10.6 aufgenommen.x?Oder wurden alle Tests in Mac OS X 10.6 durchgeführt.x und das Erstellen gegen das 10.5 SDK führten zum oberen Image, und das Erstellen gegen das 10.6 SDK führte zum unteren Image?Welches Mac-Modell verwenden Sie?Welche Art von externen LCD- oder CRT-Displays haben Sie angeschlossen?, wenn überhaupt?

Nur ein paar Ideen, ohne die oben angeforderten Informationen zu haben.Der Standard-Schriftglättungsstil ist CRT in 10.5, glaube ich, und 10.6 ist standardmäßig "automatisch".Wenn Sie also ein System mit LCD-Display haben und unter 10,5 getestet haben, aber den Schriftglättungsstil nie vom Standard-CRT-Stil geändert haben, erhalten Sie ein Bild wie das obere.Wenn Sie dann auf demselben System zu 10.6 gewechselt haben, hat die automatische Schriftglättung von 10.6 möglicherweise Ihr LCD-Display automatisch erkannt und eine mittlere Schriftglättung im LCD-Stil verwendet, was zu dem "schwerer aussehenden" Text im unteren Bild führen würde.

Eine andere Sache, die Sie beachten sollten, ist, dass der Wert für die Schriftglättung auf Hostbasis gespeichert wird.Zum Beispiel auf meiner Maschine, die AppleFontSmoothing der Wert wird in ~ / Library / Preferences / ByHost / gespeichert.Globale Präferenzen.##########.plist, wo die ########## ist Ihre Hardware-UUID.Ich nehme an, es ist möglich, dass 2 verschiedene Werte für verschiedene Host-Setups gespeichert sind.

Sie bekommen, wonach Sie fragen

[NSFont systemFontOfSize:18]

Es handelt sich höchstwahrscheinlich um subtil unterschiedliche Schriftarten zwischen 10.5 und 10.6.Ein Grafikdesigner ist aus irgendeinem Grund verrückt geworden.

Was bekommen Sie, wenn Sie die Ausgabe von protokollieren [NSFont systemFontOfSize:18].Unterscheidet es sich zwischen 10.5 und 10.6?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top