Come recuperare solo lo stile del carattere (grassetto, corsivo, grassetto corsivo) dal pannello Font (NSFontPanel) e il colore?

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

Domanda

Io sono il recupero di un valore da NSFontPanel, che cambia la famiglia di font, lo stile del testo. Ma voglio solo Stile del Carattere e colore a parte che ho scelto da NSFontPanel.

Non ricevo come ottenere questo.

NSFont *font  =[fontmanager selectedFont];
     string =[font fontName];
     st = [font pointSize];
    color =[TextEntered textColor];
  1. In variabile stringa sto ottenendo famiglia di font (e.g.Arial) e lo stile dei caratteri (es. Grassetto). ma voglio questi valori separatamente.

  2. E nella variabile colore ottengo solo colore nero.

Io non sono in grado di capire dove ho sbagliato a ottenere il colore, e quale funzione che ho usato per ottenere lo stile del carattere ..

È stato utile?

Soluzione

Per ottenere lo stile, si usa [fontmanager traitsOfFont: font]. Per quanto riguarda il colore, penso che si desidera ottenere il testo come un NSAttributedString e quindi ottenere il valore per l'NSForegroundColorAttributeName attributo.

Modifica per aggiungere: Supponendo che la variabile TextEntered è NSTextField *, uso qualcosa di simile:

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

Per barrato, l'uso NSStrikethroughStyleAttributeName e per uso sottolineatura NSUnderlineStyleAttributeName.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top