使用iOS 5.0+ for iPad,我在UITextView中有一个包含阿拉伯文字的应用程序,其中:
myTextView.editable = NO;
奇怪的是,阿拉伯语文本突然左对齐而不是右对齐,导致用户可读性出现相当大的问题。
我感谢任何克服这种奇怪行为的帮助!
答案 0 :(得分:6)
解决了!事实证明它非常简单:只需将textAlignment设置为UITextAlignmentRight。
UITextView在可编辑时的工作方式不同,特别是在RTL文本方面。如果基本书写方向是可编辑文本视图中的RTL,则必须将文本左对齐,而不是右对齐,以使文本实际对齐(RTL书写方向翻转默认值!)
因此,当您有UITextView时,您可能需要先检查editable属性,然后使用第一个字符的写入方向(这是iOS确定文本是左对齐还是右对齐)来设置textAlignment属性
例如:
// check if the text view is both not editable and has an RTL writing direction
if (!someTextView.editable && [someTextView baseWritingDirectionForPosition:[someTextView beginningOfDocument] inDirection:UITextStorageDirectionForward] == UITextWritingDirectionRightToLeft) {
// if yes, set text alignment right
someTextView.textAlignment = UITextAlignmentRight;
} else {
// for all other cases, set text alignment left
someTextView.textAlignment = UITextAlignmentLeft;
}
}
iOS 6更新:
在iOS 6中,UITextView的textAlignment属性实际上对应于它在屏幕上的外观。对于iOS 6,只需将textAlignment设置为您想要查看的方向。上面的代码适用于iOS 5.1及更早版本。
我希望这有助于处理此问题的任何其他人!