使用iOS 5.0及iPad的,我有在一个UITextView,其中包含阿拉伯文字的应用程序:
myTextView.editable = NO;
奇怪的是,阿拉伯语的文字突然对齐到左边,而不是权利,造成相当多的问题,用户的可读性。
我明白任何克服这种奇怪的行为帮助!
使用iOS 5.0及iPad的,我有在一个UITextView,其中包含阿拉伯文字的应用程序:
myTextView.editable = NO;
奇怪的是,阿拉伯语的文字突然对齐到左边,而不是权利,造成相当多的问题,用户的可读性。
我明白任何克服这种奇怪的行为帮助!
解决它! 原来,这是非常简单:只需设定textAlignment到UITextAlignmentRight。
UITextView的工作方式不同可编辑的,而不是,尤其是当它涉及到RTL文本。 如果基本的书写方向是RTL可编辑的文本视图,必须对齐文本左,不正确的,为了真正右对齐文本(RTL的书写方向翻转的默认值!)
所以,当你有一个UITextView,你可能想先检查可编辑的属性,然后用第一个字符的书写方向(这是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和前面所描述的上面的代码工作。
我希望这可以帮助别人处理这个问题!