0402

通知和代理的区别
  • 代理是一对一的,只能是调用实现了协议里的方法,对象作为实现了该方法才能执行方法
  • 通知是多对多,它是通过通知中心分发
  • 通知要及时移除,如果不及时移除可能会收到多次通知,就好像C#中的事件注册多次一样.也可能(通知中心不会保留被通知的对象)是被通知的对象已经销毁,但通知中心仍保留这个通知继续通知造成野指针错误,应用可能会崩溃.
  • 同时的添加和移除很容易和KVO混在一起,只要注意addObserver和removeObserver的时候不选择forKeyPath就可以了.

下图是个代码实例:

移除通知:注意KVO


键盘通知
  • UIDevice的一些通知,如下图:

  • 键盘通知


文本框的处理

问题1:在文本框UITextView里,光标默认贴靠在最左端,又是需要让光标离开一些距离,此时该怎么办呢?

答:UITextView没有UIEdgeInset属性,所以不能通过设置内边距来设定.UITextView有个leftView成员,再配合leftViewModel为UITextFieldViewModelAlways,这样就可以放一个有宽度没背景色的UIView就可以了.

问题2:既然出现了文本框,则键盘弹出右下角的文字标识肯能就要改一改,该如何改呢?

答:每个文本框UITextView都有一个ReturnKey的属性,在那里可以设置.如果要改成自己想要的问题则需要其他知识准备. 注意:UITextView还有一个Auto-enbale Retuen Key的属性,用来决定键盘右下角按钮的可用性.

问题3:如何监听文本框UITextView的回车事件

答:使用代理,如下图:

设置键盘弹出QQ聊天窗口背景色方法


键盘弹出和收起的高度处理就要参考这个 QQ聊天06-键盘处理

最新文章

  1. C#学习笔记-ContextMenuStrip
  2. Datatable 列查询,统计值
  3. Android 学习第11课,android 实现拨打电话的功能
  4. RHEL 安装gcc 艰难历程
  5. 两句话概括“sql外键”
  6. 有关android UI 线程
  7. homework-03
  8. Opacity多浏览器透明度兼容处理(转)
  9. Linux发送监控指标到内部邮箱
  10. Spark RDD Persistence
  11. java中String的用法
  12. 重新学习WCF
  13. 半导体制造、Fab以及Silicon Processing的基本知识
  14. PHP调用微信wx_JSSDK录音并播放,
  15. 深入解读阿里云数据库POLARDB核心功能物理复制技术
  16. navicat激活
  17. 在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器
  18. 俺也会刷机啦--windows7下刷android
  19. 【JVM】-NO.111.JVM.1 -【JDK11 HashMap详解-1-hash()剖析】
  20. php向mariaDB插入数据时乱码问题解决 --- mysqli_set_charset(设置默认字符编码)

热门文章

  1. hdu 4729 树链剖分
  2. java初级开发中的报错问题
  3. curl模拟浏览器进行phpQuery抓取数据
  4. Debian下配置SSH服务器的方法
  5. 关于server的一些小记
  6. 实例:使用纹理对象创建Sprite对象
  7. C#中数组、ArrayList和List<T>三者的发展历程
  8. 基于python yield机制的异步操作同步化编程模型
  9. JS学习第四课
  10. 2015年最新出炉的JavaScript开发框架