textViewDidChangeSelection 대리자 내의 textView에 대해 selectedRange 속성을 설정하는 이상한 동작이 발생합니다.textViewDidChangeSelection 내의 이상한 UItextView 비헤이비어 설정 범위
있는 viewDidLoad에서 내 코드는 다음과 같이
hiddenTextView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)];
//[hiddenTextView setHidden:YES];
[email protected]"ulrd";
hiddenTextView.text = _hiddenTextViewText;
hiddenTextView.delegate = self;
_hiddenTextViewDefaultRange = NSMakeRange(2,0);
hiddenTextView.selectedRange = _hiddenTextViewDefaultRange; //horizontal and vertical center of the textview
[self.view addSubview:hiddenTextView];
[hiddenTextView becomeFirstResponder];
if (_keyboardShown)
[hiddenTextView resignFirstResponder];
은 내가 textViewDidChangeSelection을 정의
- (void)textViewDidChangeSelection:(UITextView *)textView {
NSLog(@"%lu",(unsigned long)textView.selectedRange.location);
if (textView.selectedRange.location != _hiddenTextViewDefaultRange.location)
{
hiddenTextView.selectedRange = _hiddenTextViewDefaultRange;
}
}
내가 4 문자 텍스트를 설정하고 위치 2 (가운데)의 선택 인덱스를 넣어. 결과는 시뮬레이터 NSLog에서 키보드의 화살표를 누르면 0 (텍스트 시작)을 출력 한 다음 2 (위치 재설정)가 올바른 것입니다. 다시 누르시면 똑같은 일을 계속합니다. 문제는 내가 x 번 쳤을 때 텍스트의 끝 부분 (4 번 위치)으로 갈 수 있기 전에 똑같은 시간을 맞춰야한다는 것입니다. 프로그래밍 방식으로 작업하는 대신 UIButton으로 위치를 재설정하려고 시도했지만 정상적으로 작동합니다. 어떤 아이디어?
실제 장치에 키보드를 연결하고 테스트 해 보셨습니까? 그것이 시뮬레이터에서만 발생한다면 그것은 중요하지 않습니다. –
방금 해 보았습니다. 블루투스 키보드가있는 iPad에서도 똑같은 일이 발생합니다. –