設(shè)置光標(biāo)的方法適用于UITextField和UITextView。
基礎(chǔ):
- 獲取文本的最開頭位置:
UITextPosition *_beginPosition = textField.beginningOfDocument;
- 獲取文本的最尾部位置:
UITextPosition *_endPosition = textField.endOfDocument;
- 獲取當(dāng)前選中文本的范圍:
UITextRange * _selectedRange = textField.selectedTextRange;
獲取光標(biāo)位置:
UITextPosition *_beginPosition = textField.beginningOfDocument;
UITextRange *_selectedRange = textField.selectedTextRange;
NSInteger _cursorPosition = [textField offsetFromPosition:_beginPosition toPosition:_selectedRange.start];
//_cursorPosition為光標(biāo)所在位置
設(shè)置光標(biāo)位置:
設(shè)置位置的根本方法是設(shè)置一個(gè)具有相同起始值和結(jié)束值的范圍
- 設(shè)置在最前端
UITextPosition *_beginPosition = textField.beginningOfDocument;
textField.selectedTextRange = [textField textRangeFromPosition: _beginPosition toPosition: _beginPosition];
- 設(shè)置在最后端
UITextPosition *_endPosition = textField.endOfDocument;
textField.selectedTextRange = [textField textRangeFromPosition: _endPosition toPosition: _endPosition];
- 設(shè)置在任意位置
NSInteger _designatedValue = 5;
UITextPosition *_beginPosition = textField.beginningOfDocument;
UITextPosition *_newPosition = [textField positionFromPosition:_beginPosition offset:_designatedValue];
textField.selectedTextRange = [textField textRangeFromPosition:_newPosition toPosition:_newPosition];