2012-12-17 3 views
3

텍스트가 일반적으로 오른쪽에 정렬되지만 편집 중에는 왼쪽 맞춤으로 전환되는 UITextField 인스턴스를 사용합니다. 이 작업은 editingDidBegin 이벤트에서 setTextAlignment:을 호출하여 수행됩니다. iOS 6 업데이트 이후로 이상하게 작동합니다. 텍스트 정렬이 오른쪽에서 왼쪽으로 올바르게 변경되지만 커서는 입력이 수행 될 때까지 텍스트 필드의 맨 오른쪽에 유지됩니다.iOS 6 : UITextField textAlignment가 커서 위치를 변경하지 않습니다.

예상되는 동작을 복원하여 정렬이 변경 될 때 커서도 움직이는 방법을 아는 사람이 있습니까?

일부 컨텍스트를 제공하려면 : 텍스트 필드를 사용하여 단위로 값을 표시합니다. 편집 중에 유닛이 제거 된 다음 사용자가 들어가기를 기다린 후 다시 표시됩니다. 이벤트 editingDidBegin 호출

방법 : 이벤트 editingDidEnd 호출

- (IBAction)textEditingDidBegin:(UITextField *)sender 
{ 
    [sender setTextAlignment:NSTextAlignmentLeft]; 
    [sender setText:[NSString stringWithFormat:@"%.0f", width]]; 
} 

방법 :

- (IBAction)textEditingDidEnd:(id)sender 
{ 
    [sender setTextAlignment:UITextAlignmentRight]; 
    [sender setText:[NSString stringWithFormat:@"%.0f m", width]]; 
} 

답변

2
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    textField.textAlignment = NSTextAlignmentLeft ; 
    return YES ; 
} 

변경 textAlignment 시작 않았다 편집하기 전에. 이 작업을 수행하는 가장 좋은 장소는 UITextFieldDelegate 메서드 textFieldShouldBeginEditing입니다.

+0

감사합니다. 덕분에 많은 도움이되었습니다. –

3

textView를 첫 번째 응답자로 사퇴 한 다음 바로 첫 번째 응답자로 지정하십시오.

textView.textAlignment = NSTextAlignmentCenter; 
[textView resignFirstResponder]; 
[textView becomeFirstResponder]; 
관련 문제