我正在尝试更改 NSAttributedString 中的写入方向。然而,我真的很难弄清楚该怎么做。
CTFontRef fontRef = CTFontCreateWithName((CFStringRef)@"ArialRoundedMTBold", 16, NULL);
NSDictionary *attrDictionary = [NSDictionary dictionaryWithObjectsAndKeys:(__bridge id)fontRef,(NSString *)kCTFontAttributeName, nil];
CFRelease(fontRef);
NSAttributedString *attString=[[NSAttributedString alloc] initWithString:self.stringMap attributes:attrDictionary];
self.attString = attString;
这是我初始化 NSAttributedString 的代码,我已经阅读了有关该常量的信息kCTWritingDirection从右到左我觉得我必须把它放在某个地方,但我可以弄清楚在哪里以及如何放置。
有人有什么建议吗?
我更仔细地阅读了文档。
我会用NSFontAttributeName
and NSWritingDirectionAttributeName
因为我对它们比使用所有的更舒服bridge
东西,还有简写语法。
So NSWritingDirectionAttributeName
等待一个NSArray
NSNumbers。这就是问题所在。
这些数字之一必须是新南威尔士州写作方向 (左到右 or 右到左),另一个NSTextWritingDirection (嵌入 or Override).
因此,可能的组合是(我认为您正在寻找第四种组合):
NSDictionary *attrDictionary = @{NSFontAttributeName:font,
NSWritingDirectionAttributeName:@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride)]};
NSDictionary *attrDictionary = @{NSFontAttributeName:font,
NSWritingDirectionAttributeName:@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionEmbedding)]};
NSDictionary *attrDictionary = @{NSFontAttributeName:font,
NSWritingDirectionAttributeName:@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionOverride)]};
NSDictionary *attrDictionary = @{NSFontAttributeName:font,
NSWritingDirectionAttributeName:@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride)]};
资料来源:文档NSWritingDirectionAttributeName
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)