UItextInput-Protocol
UItextInput是一个protocol,一般来说,文字处理的控件都要遵守这个协议。如UITextField
,UITextView
。下面介绍一些文字处理的基本概念。
- marked text
对于多步骤(multistage)的文字输入来说,有一些文字是已经输入在文本框里,却还没有点击确认,这些文字叫做marked text。中文有,日文也比较常见。
UITextPosition
和UITextRange
遵守
UITextInput
协议的类都要创建这两个类的子类。为什么不用NSRange
和NSInteger
呢。用来表示文字的位置和范围。如何转化
NSRange
和NSInteger
?- UITextPosition to nsinteger
func offset(from: UITextPosition, to toPosition: UITextPosition) -> Int
- UITextPosition to UITextRange
func textRange(from fromPosition: UITextPosition, to toPosition: UITextPosition) -> UITextRange?
- nsinteger to UITextPosition
NSInteger startOffset = [tv offsetFromPosition:tv.beginningOfDocument toPosition:start];
坐标位置和UITextRange的转换
func characterRange(at point: CGPoint) -> UITextRange?
根据坐标系中点的位置,返回一个包含了点所处的character的UITextRange
。为啥不是一个UITextPosition
,因为一个character会占据多个字符宽度,如emoji表情。
如果那个位置没有文字,返回nil。
func closestPosition(to point: CGPoint) -> UITextPosition?
根据点来找到距离这个点最近的而一个UITextPosition
。如果这个点在第二行行位,而第二行只有一个字,可能定位到上面一行的最末。。
转载于:https://www.cnblogs.com/huahuahu/p/UItextInputProtocol.html
UItextInput-Protocol相关推荐
- Implement a customized pin code input control
As a iOS engineer, you are asked to collect user's input for a pin code. How can we make it? You can ...
- Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析
程序通过JDBC 连接数据库异常,报 ORA-03137[12333]的错误. 当前程序的JDBC 驱动版本:ojdbc16-11.2.0.1.0.jar 数据库版本: 11.2.0.3 一. Log ...
- Protocol Buffers简明教程
随着微服务架构的流行,RPC框架渐渐地成为服务框架的一个重要部分.在很多RPC的设计中,都采用了高性能的编解码技术,Protocol Buffers就属于其中的佼佼者.Protocol Buffers ...
- Google Protocol Buffers介绍
Google Protocol Buffers(简称Protobuf),是Google的一个开源项目,它是一种结构化数据存储格式,是Google公司内部的混合语言数据标准,是一个用来序列化(将对象的状 ...
- 【C++】Google Protocol Buffer(protobuf)详解(一)
1.简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准, Protocol Buffers 是一种轻便高效的结构化数据存储格式 ...
- java报错MalformedURLException: unknown protocol: c
java报错:MalformedURLException: unknown protocol: c 1. 报错情况: 部分代码: //打开图片path="C:/Users/MyUser/im ...
- IPVS: Can't initialize ipvs: Protocol not available解决方法
经排查发现本地的测试环境磁盘空间满了,造成数据库不能写入数据. 最终的罪魁祸首是日志文件. 由于我们使用的是lvs负载均衡,前端的Keepalived启动之后不能初始化ipvs协议,所以日志在不停的刷 ...
- Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)
Centos 6.5下一个SNMP简单配置(snmp protocol v3.监控宝) jom_ch@2014/7/25 1,安装 >yum -y install net-snmp net-sn ...
- 解决报错: MobaXterm X11 proxy: Unsupported authorisation protocol
此文首发于我的个人博客:解决报错 MobaXterm X11 proxy Unsupported authorisation protocol - zhang0peter的个人博客 今天在使用Moba ...
- 【转】iOS开发-Protocol协议及委托代理(Delegate)传值
原文网址:http://www.cnblogs.com/GarveyCalvin/p/4210828.html 前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来 ...
最新文章
- samll note
- struts2之请求参数接收
- mybatis insert 忽略 联合唯一索引_MySQL实战中,Insert语句的使用心得总结
- [转帖]外壳命名空间扩展
- 在你的andorid设备上运行netcore (Linux Deploy)
- [css] box-sizing常用的属性有哪些?分别有什么作用?
- 架构日趋复杂的今天,如何重构数据库和应用边界?
- SQL中的join连接
- 开源C++项目Google JavaScript引擎V8挑战实录,带你进入V8之旅
- SOA安全性解决方案
- 完美解决netkeeper 错误代码137
- 面向创新设计的汽车外形曲面三维逆向建模
- idea自动生成器 生成构造器 get/set方法等
- 关于浏览器及其内核以及什么是浏览器兼容性
- 移动端自动化任务-AutoJs Pro v9使用教程(一)
- 老司机亲自整理的和弦知识让你事半功倍学乐理
- service mesh解决的几个问题
- EWAHCompressedBitmap数据结构及原理
- 西门子_Step7软件仿真方法
- C语言求两个正整数的最小公倍数
热门文章
- 读书笔记 之《Thinking in Java》(对象、集合、异常)
- 记录一次Tomcat内存泄露原因的追溯
- 通过代码设置radiobutton不同方位图标的两种方法
- Flappy Bird 单机版
- linux 0.11根文件系统,构建一个最小Linux根文件系统
- 你的Redis集群撑得住吗?
- python 边缘计算_OpenEdge首页、文档和下载 - 边缘计算平台 - OSCHINA - 中文开源技术交流社区...
- ios 企业签名证书购买_iOS苹果企业签名须知
- wav文件头修复_贴唱混音之二——音频修复
- delphi中webbrowse控件中模拟点击文本超链接_游戏中lt;控件gt;的思考