myTextView.editable = NO;
이상하게도, 아랍어 텍스트가 갑자기 왼쪽이 아닌 오른쪽으로 정렬되어 사용자의 가독성 문제가 발생합니다.
이 이상한 행동을 극복하는데 도움을 주셔서 감사합니다!
myTextView.editable = NO;
이상하게도, 아랍어 텍스트가 갑자기 왼쪽이 아닌 오른쪽으로 정렬되어 사용자의 가독성 문제가 발생합니다.
이 이상한 행동을 극복하는데 도움을 주셔서 감사합니다!
해결했습니다! 매우 간단합니다. textAlignment를 UITextAlignmentRight로 설정하기 만하면됩니다.
UITextView는 편집 가능하고 그렇지 않은 경우, 특히 RTL 텍스트의 경우에는 다르게 작동합니다. 기본 쓰기 방향이 편집 가능한 텍스트보기에서 RTL 인 경우 텍스트가 실제로 오른쪽 정렬되도록 RTL 쓰기 방향이 기본값을 뒤집어 지도록 텍스트를 오른쪽이 아닌 왼쪽으로 정렬해야합니다.
그래서 UITextView가있는 경우 먼저 편집 가능한 속성을 확인한 다음 textAlignment 속성을 설정하기 위해 텍스트가 왼쪽 또는 오른쪽으로 정렬되는지 여부를 iOS가 결정하는 방식 인 첫 번째 문자의 쓰기 방향을 사용할 수 있습니다. 예를 들어
: 아이폰 OS 6에 대한
// 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;
}
}
업데이트 :
아이폰 OS 6에, UITextView의 textAlignment 속성은 실제로 화면에 그 모습에 해당합니다. iOS 6의 경우 textAlignment를 원하는 방향으로 설정하면됩니다. 위 코드는 iOS 5.1 이전 버전에서 설명한대로 작동합니다.
다른 사람이이 문제를 해결하는 데 도움이되기를 바랍니다.