2017-08-09 5 views
0

Ich habe eine App mit einem Timer. Dieser Timer ist in der Ansicht zentriert. Als die Standardschrift von macOS Helvetica Neue war, funktionierte das gut. Es scheint, dass die Zahlen der Schriftart gleichmäßig verteilt sind. Wenn der Timer läuft, bleibt alles an seinem Platz.Feste Abstände in AppKit

Jetzt mit San Francisco als Standardschriftart ist dies defekt. Jede Zahl scheint eine andere Breite zu haben, was dazu führt, dass der Timer während des Laufens kontinuierlich in der Größe wechselt. Hartes Codieren der Schriftart in Helvetica Neue behebt das Problem, aber ich möchte die Schriftart verwenden, die standardmäßig auf dem Betriebssystem ist.

Gibt es irgendeine Art von Hinweis, den ich mit NSTextField einstellen kann, das die Standardsystemschrift mit festen Breitenzahlen wie vorher rendern würde? Ich glaube mich daran zu erinnern, dass es verfügbar ist, aber ich kann es nicht finden. Ich möchte keine Schriftart mit fester Breite verwenden, da dies die Ästhetik sprengt. Es scheint, als ob die Stoppuhr-App auf iOS dies irgendwie macht.

Antwort

1

Verwenden Sie diese Klasse Methode der NSFont

  • Swift

    class func monospacedDigitSystemFont(ofSize fontSize: CGFloat, weight: CGFloat) -> NSFont 
    
  • Objective-C

    + (NSFont *)monospacedDigitSystemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight; 
    

Verfügbar macOS 10.11+

+0

Ja! Genau das habe ich gesucht. Vielen Dank! –