Como recuperar apenas o estilo de fonte (ousado, itálico, ousado) do painel de fontes (NSFontPanel) e cor?

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

Pergunta

Estou recuperando um valor de NSFontPanel, que muda a família de fontes, estilo de texto. Mas eu quero apenas o estilo de fonte e a cor separadamente que selecionei NSFontPanel.

Não estou entendendo como conseguir isso.

NSFont *font  =[fontmanager selectedFont];
     string =[font fontName];
     st = [font pointSize];
    color =[TextEntered textColor];
  1. Na variável de string, estou recebendo a família de fontes (egarial) e o estilo de fonte (por exemplo, negrito). Mas eu quero esses valores separadamente.

  2. E na variável de cor, eu só recebo cor preta.

Não consigo entender onde estou errado em obter cores e que função usei para obter o estilo da fonte ..

Foi útil?

Solução

Para obter o estilo, você usaria [fontmanager traitsOfFont: font]. Quanto à cor, acho que você quer obter o texto como um NSAttributedString e então obtenha o valor para o atributo NSForegroundColorAttributeName.

Editar a acrescentar: Supondo que sua variável textented seja NSTEXTIFFIELD*, use algo assim:

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

Para StrikeThrough, use NSStrikethroughStyleAttributeName e para uso sublinhado NSUnderlineStyleAttributeName.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top