2012-06-02 82 views

回答

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和更早版本的描述工作。

我希望這可以幫助任何人處理這個問題!

相關問題