2013-04-27 1 views
2

UITextView의 텍스트 정렬을 변경하는 두 가지 방법을 만들었습니다. iOS6 이상을 타겟팅하고 있습니다. 아이디어는 사용자가 텍스트 뷰의 입력 정렬을 변경할 수 있다는 것입니다. 입력이 영어로되어 있다면 아래의 메소드가 잘 작동합니다. 아랍어로 된 입력은 정렬을 변경하지 않습니다.'오른쪽에서 왼쪽으로 쓰는 언어에 대한 UITextView 정렬

-(void) changeLeftAllignment 
{ 
    myTextView.textAlignment = NSTextAlignmentLeft; 
} 

-(void) changeRightAllignment 
{ 
    myTextView.textAlignment = NSTextAlignmentRight; 
} 

영어 입력에만 완벽하게 작동합니다. 키보드 언어를 오른쪽에서 왼쪽으로 된 아랍어로 변경하면 더 이상 작동하지 않습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

감사합니다 당신이 NSTextAlignmentNatural를 사용한다 iOS 6.0 이상에서

+0

의미를? – matt

+0

"자연"정렬은 어떻게 사용합니까? 그것은 영어와 아랍어 모두에 적용됩니다. – matt

+0

아이디어는 TextView에서 사용자가 뭔가를 한 후에 텍스트 정렬을 변경하기 위해이 메서드를 호출 할 수 있습니다. 문제는 아랍어로 작성한 후에 텍스트 정렬을 변경하지 않지만 영어 인 경우 잘 작동합니다. @매트 – iMubarak

답변

5

. 열거 된 UITextAlignment은 더 이상 사용되지 않습니다. iOS 6.0 타겟에서 코드를 실행하면 자연 정렬이 자동으로 사용되며 모든 코드가 예상대로 작동합니다.

아이폰 OS의 이전 버전에서는, 당신은 언어 입력이 RTL 여부를 확인하고 정렬 반전 수 :

"가 더 이상 작동하지 않습니다"무엇
- (BOOL)isRTL { 
    return ([NSLocale characterDirectionForLanguage:[[NSLocale preferredLanguages] objectAtIndex:0]] == NSLocaleLanguageDirectionRightToLeft); 
} 

-(void) changeLeftAllignment 
{ 
    myTextView.textAlignment = (![self isRTL]]) ? UITextAlignmentLeft : UITextAlignmentRight; 
} 

-(void) changeRightAllignment 
{ 
    myTextView.textAlignment = (![self isRTL]]) ? UITextAlignmentRight : UITextAlignmentLeft; 
} 
관련 문제