UITextField设置光标位置

设置光标的方法适用于UITextFieldUITextView

基础:
  • 获取文本的最开头位置:
UITextPosition *_beginPosition = textField.beginningOfDocument;
  • 获取文本的最尾部位置:
UITextPosition *_endPosition = textField.endOfDocument;
  • 获取当前选中文本的范围:
 UITextRange * _selectedRange = textField.selectedTextRange;
获取光标位置:
UITextPosition *_beginPosition = textField.beginningOfDocument;
UITextRange *_selectedRange = textField.selectedTextRange;
NSInteger _cursorPosition = [textField offsetFromPosition:_beginPosition toPosition:_selectedRange.start];
//_cursorPosition为光标所在位置
设置光标位置:

设置位置的根本方法是设置一个具有相同起始值和结束值的范围

  • 设置在最前端
UITextPosition *_beginPosition = textField.beginningOfDocument;
textField.selectedTextRange = [textField textRangeFromPosition: _beginPosition toPosition: _beginPosition];
  • 设置在最后端
UITextPosition *_endPosition = textField.endOfDocument;
textField.selectedTextRange = [textField textRangeFromPosition: _endPosition toPosition: _endPosition];
  • 设置在任意位置
 NSInteger _designatedValue = 5;
 UITextPosition *_beginPosition = textField.beginningOfDocument;
 UITextPosition *_newPosition = [textField positionFromPosition:_beginPosition offset:_designatedValue];
 textField.selectedTextRange = [textField textRangeFromPosition:_newPosition toPosition:_newPosition];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容