Переместить курсор в начало предварительно заполненного текстового просмотра при загрузке в Objective-C
При загрузке контроллера представления из кода, в котором UITextView предварительно заполнен некоторым текстом, я хотел бы, чтобы курсор находился в начале текста, а не в конце.
Однако следующий код не действует. Курсор по-прежнему отображается в конце предварительно заполненного текста.
Что я могу сделать, чтобы переместить курсор в начало текста?
self.myTextView.text = @"Text that should go after cursor";
[self.myTextView becomeFirstResponder];
UITextPosition* start = self.myTextView.beginningOfDocument;
UITextRange *newRange = [self.myTextView textRangeFromPosition:start toPosition:start];
NSLog("newRange is%@",newRange);
[self.myTextView setSelectedTextRange:newRange];
Обратите внимание, newRange записывается как <_UITextKitTextRange: 0x17463f0c0> (0, 0)F, поэтому я думаю, что следующая строка фактически не меняет ранг. Но я не знаю другого способа сделать это.
1 ответ
Я обнаружил, что ваш отпечаток неправильный, отсутствует @
NSLog(@"newRange is%@",newRange);
Затем я обнаружил, что ваш код эффективен, курсор можно расположить впереди
Я тестировал iOS 9.1
、 iOS 10.1
、 iOS 11.1
、 iOS 12.4
с симулятором, все из которых эффективны. Я не знаю, каково ваше окружение.
Еще одно замечание: перед выполнением этого фрагмента кода убедитесь, что myTextView
был успешно создан. я использовалstoryboard
создать myTextView
когда я тестировал и добавил ваш код в viewDidLoad
.