文档章节

总结下 UITextViewDelegate 代理的每个方法

asjoker
 asjoker
发布于 2016/11/25 15:14
字数 318
阅读 48
收藏 0
点赞 0
评论 0

#总结下 UITextViewDelegate 代理的每个方法


extension ViewController: UITextViewDelegate{
    /*
     几乎所有操作都会触发textViewDidChangeSelection,包括点击文本框、增加内容删除内容
     执行率高于 textViewDidBeginEditing 代理 也高于 UIKeyboardWillShowNotification 通知
     */
    func textViewDidChangeSelection(_ textView: UITextView) {
        print("\t textViewDidChangeSelection 几乎所有操作都会触发")
    }
    ///是否可以开始编辑
    func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
        print("\t textViewShouldBeginEditing 是否可以开始编辑")
        return true
    }
    ///是否可以结束编辑
    func textViewShouldEndEditing(_ textView: UITextView) -> Bool {
        print("\t textViewShouldEndEditing 是否可以结束编辑")
        return true
    }
    /// 开始编辑
    func textViewDidBeginEditing(_ textView: UITextView) {
        print("\t textViewDidBeginEditing 开始编辑")
    }
    /// 结束编辑
    func textViewDidEndEditing(_ textView: UITextView) {
        print("\t textViewDidEndEditing 结束编辑")
    }
    /// 编辑过程中触发
    func textViewDidChange(_ textView: UITextView) {
        print("\t textViewDidChange 编辑过程中触发")
    }
    /// 编辑过程中触发,是否将 变更的内容 写入textView
    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        print("\t 变更范围 \(range.length) \(range.location) - 变更内容 \(text)")
        return true
    }
    
    func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
        print("\t shouldInteractWith \(URL)")
        return true
    }
    func textView(_ textView: UITextView, shouldInteractWith textAttachment: NSTextAttachment, in characterRange: NSRange) -> Bool {
        print("\t shouldInteractWith \(textAttachment)")
        return true
    }
    
    @available(iOS 10.0, *)
    func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
        print("\t shouldInteractWith \(URL)")
        return true
    }
    @available(iOS 10.0, *)
    func textView(_ textView: UITextView, shouldInteractWith textAttachment: NSTextAttachment, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
        print("\t shouldInteractWith \(textAttachment)")
        return true
    }
}

© 著作权归作者所有

共有 人打赏支持
asjoker
粉丝 10
博文 108
码字总数 79411
作品 0
东城
程序员
iOS中UITextView方法解读

iOS中UITextView方法解读 常用属性解读: @property(nonatomic,assign) id<UITextViewDelegate> delegate; 设置代理属性 @property(nonatomic,copy) NSString *text; textView上的文本 @pro......

珲少 ⋅ 2015/06/04 ⋅ 0

Xamarin iOS文本框视图

Xamarin iOS文本框视图 与标签视图不同,文本框视图(一般使用UITextField类实现)可以接收用户的文本输入,并进行显示。 【示例2-16】以下将使用文本框来实现QQ登录界面的效果。具体步骤如下...

大学霸 ⋅ 2015/06/17 ⋅ 0

IOS键盘输入屏幕上移

在IOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮。这样的话按钮的事件也...

无邪8 ⋅ 2017/12/12 ⋅ 0

UITextView详解

1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: #import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDelegate> { UITextView *text......

lingfeng72 ⋅ 2015/07/13 ⋅ 0

mybatis源码阅读(八) ---Interceptor了解一下

1 Intercetor MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis允许使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, ro...

lemonLove ⋅ 05/25 ⋅ 0

UITextView控件的详细讲解

1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: [csharp]view plaincopy #import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDeleg......

meilidashijie ⋅ 2013/01/07 ⋅ 0

构建View时可能用到的代理函数调用顺序

很多时候,要记住iPhone试图加载的life-cycle对应的代理函数是有点头疼的,特别是用Interface Builder构建界面的情况下。这给如何找到最佳的位置来添加自定义的视图绘画/初始化/配置成为了一...

鉴客 ⋅ 2011/09/11 ⋅ 0

Mybatis_运行原理

1、获取sqlSessionFactory对象: 解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSession; 注意:【MappedStatement】:代表一个增删改查的详细信息 2、获取...

Mr_LiuT ⋅ 2017/10/29 ⋅ 0

iOS UITableView代理方法详解

iOS UITableView的代理方法详解 一、补充 在上一篇博客中,http://my.oschina.net/u/2340880/blog/404605,我将IOS中tableView(表视图)的一些常用方法总结了一下,这篇将tableView的代理方法...

珲少 ⋅ 2015/04/22 ⋅ 2

Java 依赖注入总结

最近在研读Hive社区版本的源码,发现其中多处用到了Java依赖注入,这里简单总结一下依赖注入的几种实现方法。在谈java依赖注入之前,有必要先回顾一下设计模式中的Proxy模式。 其实每个模式名...

半夜菊花茶 ⋅ 2017/11/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 5分钟前 ⋅ 0

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 43分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 44分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 55分钟前 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 57分钟前 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 58分钟前 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 今天 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部