我正在尝试更改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;这是我初始化我的kCTWritingDirectionRightToLeft的代码,我读到了常量NSAttributedString,我觉得我必须把它放在某个地方,但是我可以知道在哪里,怎么做。
有人有什么建议吗?
发布于 2014-04-21 16:43:47
我读得更仔细了。
我将使用NSFontAttributeName和NSWritingDirectionAttributeName,因为我比使用所有bridge内容更适合它们,而且还可以使用简写语法。
因此,NSWritingDirectionAttributeName在等待NSArray of NSNumbers。这就是问题所在。其中一个数字必须是NSWritingDirection (LeftToRight或RightToLeft),另一个是NSTextWritingDirection (嵌入或覆盖)。
因此,组合可能是(我认为您正在寻找第四个):
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)]};https://stackoverflow.com/questions/23158772
复制相似问题