Wie nur Schriftstil (fett, kursiv, Fett Kursiv) aus Schriftfeld (NSFontPanel) und Farbe abzurufen?
-
25-09-2019 - |
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];
-
In String-Variable Ich erhalte Schriftfamilie (e.g.Arial) und Schriftstil (z. Bold). aber ich möchte diese Werte getrennt.
-
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 ..
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
.