uikit – NSMutableParagraphStyle忽略了NSWritingDirectionNatu
发布时间:2020-12-12 08:58:34 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用NSAttributedString UIKit Additions在UIView中绘制属性字符串.我遇到的问题是,尽管我的段落样式的baseWritingDirection属性使用了NSWritingDirectionNatural的值,但文本始终默认为从左到右. 这是我如何形成属性字符串(简化): NSString *arabic =
我正在使用NSAttributedString UIKit Additions在UIView中绘制属性字符串.我遇到的问题是,尽管我的段落样式的baseWritingDirection属性使用了NSWritingDirectionNatural的值,但文本始终默认为从左到右.
这是我如何形成属性字符串(简化): NSString *arabic = @"??????? ??????? ???????? ?????? ????? ??????? ?????? ?????. ???? ??? ????? ???? ?????? ?????? ???????? ????? ???? ??? ??? ?? ?????? ?????? ???? ?????? ??? ?????????? ???????? ???????"; NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; paragraph.baseWritingDirection = NSWritingDirectionNatural; paragraph.lineBreakMode = NSLineBreakByWordWrapping; NSMutableDictionary *attributes = [[NSMutableDictionary alloc] init]; attributes[NSParagraphStyleAttributeName] = paragraph; NSAttributedString *string = [[NSAttributedString alloc] initWithString:arabic attributes:attributes]; 以下是我绘制文字的方式: - (void)drawRect:(CGRect)rect { [self.attributedText drawWithRect:rect options:NSStringDrawingUsesLineFragmentOrigin context:nil]; } 但它仍然从左向右流动: 我错过了什么? 解决方法我不相信使用baseWritingDirection会自动为您设置书写方向,除非您在设备上切换语言:“如果指定了NSWritingDirectionNaturalDirection,则接收方将写入方向解析为NSWritingDirectionLeftToRight或NSWritingDirectionRightToLeft,具体取决于用户语言首选项设置的方向.” 出于某种原因,如果没有将语言添加到支持的本地化版本,即使选择了阿拉伯语,您仍然无法使用该文本.这个角色似乎没有为我做这件事:??? 此外,它看起来像硬编码阿拉伯字符串中的Xcode reverses the characters,因此可能会搞砸一些复制和粘贴. 您可以使用agiletortoises的suggestion或NSLinguisticTagger’s Language tag scheme手动设置语言. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |