よし、イタリック体とセリフ体を に使おうとしているんだけどNSAttributedString
、何らかの理由で、フォントの特性がまったく効果がない。私はそれらを正しく使用したと思います(NSFontDescriptor
私の意見では、リファレンスは特によく書かれていないので、確かではありません).
NSMutableAttributedString *pellString = [[NSMutableAttributedString alloc]
initWithString:@"x2 – Dy2 = N"];
NSFontSymbolicTraits varMask = NSFontModernSerifsClass | NSFontItalicTrait;
NSDictionary *varSymbolic = [NSDictionary dictionaryWithObject:
[NSNumber numberWithUnsignedInteger:varMask]
forKey:NSFontSymbolicTrait];
NSDictionary *varAttrs = [NSDictionary dictionaryWithObject:varSymbolic
forKey:NSFontTraitsAttribute];
NSFontDescriptor *varDesc = [NSFontDescriptor fontDescriptorWithFontAttributes:varAttrs];
NSFont *variables = [NSFont fontWithDescriptor:varDesc
size:24];
[pellString addAttribute:NSFontAttributeName value:variables range:NSMakeRange(0, 12)];
オブジェクトであるNSLog を実行するとvariables
、NSFont
次のようになります。
"LucidaGrande 24.00 pt. P [] (0x7f9f43e18970) fobj=0x7f9f43e18b40, spc=7.59"
言い換えれば、NSFont
私が尋ねたようにセリフ フォントを作成したり、イタリック フォントを作成したりしませんでした (そして、それぞれを個別に試しましたが、他のフォントは使用しませんでした)。NSFontDescriptor
そこに入力したキーと値のペアをログに記録したため、問題はNSFont
オブジェクトが作成された段階にあるに違いありません。私の推測では、これらは読み取り専用のプロパティであり、設定することはできず、読み取ることしかできません。私はこれを正しく読んでいますか?
もしそうなら、一般的なセリフ フォントを指定する好ましい方法は何でしょうか? または、特定のフォントを選択して、そのフォントにアクセスできない可能性のあるユーザーに対処する必要がありますか?