Wie nur Schriftstil (fett, kursiv, Fett Kursiv) aus Schriftfeld (NSFontPanel) und Farbe abzurufen?

StackOverflow https://stackoverflow.com/questions/3606329

Frage

Ich bin einen Wert von NSFontPanel abrufen, die die Schriftfamilie ändert, Stil des Textes. Aber ich will nur Schriftstil und Farbe separat, dass ich von NSFontPanel ausgewählt haben.

Ich bin nicht immer, wie das bekommen.

NSFont *font  =[fontmanager selectedFont];
     string =[font fontName];
     st = [font pointSize];
    color =[TextEntered textColor];
  1. In String-Variable Ich erhalte Schriftfamilie (e.g.Arial) und Schriftstil (z. Bold). aber ich möchte diese Werte getrennt.

  2. Und in der Farbe variabel ich nur schwarze Farbe erhalten.

Ich bin nicht in der Lage zu verstehen, wo ich falsch bin in Farbe bekommen, und welche Funktion ich für immer Schriftart verwendet ..

War es hilfreich?

Lösung

, um die Art zu erhalten, würden Sie [fontmanager traitsOfFont: font] verwenden. Wie für die Farbe, ich glaube, Sie den Text als NSAttributedString erhalten möchten und dann den Wert für das Attribut NSForegroundColorAttributeName erhalten.

Bearbeiten hinzuzufügen: Unter der Annahme, dass Ihre TextEntered Variable ist NSTextField *, verwenden etwas wie folgt aus:

NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
    atIndex: 0 effectiveRange: NULL ];

Für gestrichener, Verwendung NSStrikethroughStyleAttributeName und für unterstrichen Verwendung NSUnderlineStyleAttributeName.

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