UITextField 光标的位置设置获取

通过给UITextField 加一个拓展

//#import "UITextField+ExtentRange.h"

#import <UIKit/UIKit.h>

@interface UITextField (ExtentRange)

- (NSRange) selectedRange;

- (void) setSelectedRange:(NSRange) range;

@end

// #import "UITextField+ExtentRange.m"

#import "UITextField+ExtentRange.h"

@implementation UITextField (ExtentRange)

- (NSRange) selectedRange

{

   UITextPosition* beginning = self.beginningOfDocument;

  UITextRange* selectedRange = self.selectedTextRange;

  UITextPosition* selectionStart = selectedRange.start;

  UITextPosition* selectionEnd = selectedRange.end;

  const NSInteger location = [self offsetFromPosition:beginning toPosition:selectionStart];

  const NSInteger length = [self offsetFromPosition:selectionStart toPosition:selectionEnd];

  return NSMakeRange(location, length);

}

- (void) setSelectedRange:(NSRange) range

{

   UITextPosition* beginning = self.beginningOfDocument;

  UITextPosition* startPosition = [self positionFromPosition:beginning offset:range.location];

   UITextPosition* endPosition = [self positionFromPosition:beginning offset:range.location + range.length];

  UITextRange* selectionRange = [self textRangeFromPosition:startPosition toPosition:endPosition];

  [self setSelectedTextRange:selectionRange];

}

@end

UITextField 光标的位置设置获取的更多相关文章

  1. 设置输入域(input/textarea)中文本光标的位置

    以前记录了一篇 将光标定位于输入框最右侧的实现方式 ,实现光标定位在文本的最末.这种需求往往在修改现有的文本.有时可能还需要把光标定位在首位,或者中间某个位置,这就需要实现一个更通用的方法. 这个方法 ...

  2. android EditText控制光标的位置

    利用自定义键盘,需要手动删除编辑框中的文本时,会根据光标的位置来删除字符.那么,如何来控制光标呢,android为我们提供了哪些方法,来处理光标呢? 这里提供几个自己写的方法,根据这些方法可以满足在光 ...

  3. 控制input输入框光标的位置

    一:理解input, textarea元素在标准浏览器下两个属性selectionStart, selectionEnd. selectionStart: 该属性的含义是 选区开始的位置: selec ...

  4. style设置/获取样式的问题 和 offsetWidth/offsetHeight的问题

    style设置/获取样式的问题:1.js通过style方法    --加样式:加的是行间样式 oDiv.style.width="20"+'px';    --取样式:取得是行间样 ...

  5. android EditText插入字符串到光标所在位置

    EditText mTextInput=(EditText)findViewById(R.id.input);//EditText对象 int index = mTextInput.getSelect ...

  6. IOS开发-UI学习-UITextField的各种属性设置

    UITextField是IOS中非常常用的一个控件,用来接收用户输入信息,完成应用和用户的交互.它的主要属性设置如下: //初始化textfield并设置位置及大小 UITextField *text ...

  7. ios开发之--UITextField光标右移

    有时候,我们直接使用TF进行操作,有时候需要裁剪,但是裁剪后,光标还是置顶的,很不美观,解决办法: // 设置一个空白View,15.0就是这块View的宽度width,也是光标的位置,根据需要设定大 ...

  8. javascript控制滚动条的位置,获取控件的位置

    一.如下是定位鼠标在视窗中的位置,先定位视窗和页面直接的距离. function getMousePoint() { var point = {x:0,y:0}; // 如果浏览器支持 pageYOf ...

  9. java窗口按钮位置设置

    java窗口按钮位置设置 代码如下: package Day08; import java.awt.BorderLayout; import javax.swing.JButton;import ja ...

随机推荐

  1. 全国计算机等级考试二级教程-C语言程序设计_第7章_函数

    函数执行,从右到左执行 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> main() ...

  2. Redmine email配置

    很简单,先安装sendmail apt-get install sendmail 然后在redmine目录的配置文件conf/configuration.yml中取消几行注释: # ==== Send ...

  3. C++Primer 中间Sales_items.h头文件

    #ifndef SALESITEM_H #define SALESITEM_H #include <iostream> #include <string> class Sale ...

  4. .NET面试题解答

    抽象类和接口有什么区别?使用时候有什么需要注意的吗?答:相同点:都不能被直接实例化,都通过继承实现其抽象方法: 不同点: 1) 接口支持多继承:抽象类不能实现多继承: 2) 接口只能定义行为:抽象类既 ...

  5. Java 基本日期类使用(一)

    一.java.util.Date Date表示特定的瞬间,精确到毫秒,其子类有Date.Time.Timestap.默认情况下输出的Date对象为:Mon Oct 13 17:48:47 CST 20 ...

  6. EXCEL破冰之旅

    1     背景 EXCEL用于日常数据分析的工具中,最便利并且最强大的莫属透视表了.因为透视表对原始数据有一定的要求,所以本次的破冰之旅也将把焦点放在如何整理基础数据这个方面. 1.1  初识透视表 ...

  7. -bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

    刚刚学习SHELL 写了一个简单的例子发生如下错误 -bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory ...

  8. TCP/IP的三次握手协议

    关于TCP/IP的三次握手协议,这篇文章中有详细的介绍,很通俗易懂,什么时候忘了,都可以过来瞧两眼,保证很快就明白了. 首先TCP/IP协议分为三个阶段:建立连接(握手阶段),数据传输阶段,连接终止阶 ...

  9. 简单的BFS学习笔记

    什么是BFS传送门. 今天学习BFS,加油! 先定义个数组: struct Node{ int a=0; int b=0; int step=0; }; int map[5][4]={//地图 0,0 ...

  10. cocos2dx3.3在Windows环境搭建以及新工程创建

    这个虽然比较简单,但是是学习cocos的第一步,不积跬步无以至千里,所以今天先分享Windows下环境搭建问题.关于mac搭建后续有机会在写(ps:因为我暂时没有mac),anyway,开始吧! 首先 ...