关于 UITextField 和 键盘 的通知、代理调用顺序

从点击UITextField到键盘弹出完成,调用代理方法或发通知的顺序

textFieldShouldBeginEditing:                (调代理)
textFieldDidBeginEditing:                   (调代理)
UITextFieldTextDidBeginEditingNotification  (发通知)
UIKeyboardWillChangeFrameNotification       (发通知)
UIKeyboardWillShowNotification              (发通知)
UIKeyboardDidShowNotification               (发通知)

在UITextField中编辑(输入或者删除)文字时,调用代理方法或发通知的顺序

// 在此方法中取得的文本框文字是输入或删除之前的
textField:shouldChangeCharactersInRange:range replacementString:(调代理)

// 在此通知中取得的文本框文字是输入或删除之后的
UITextFieldTextDidChangeNotification                            (发通知)

在UITextField结束编辑时,调用代理方法或发通知的顺序

textFieldShouldEndEditing:              (调代理)
UIKeyboardWillChangeFrameNotification   (发通知)
UIKeyboardWillHideNotification          (发通知)
textFieldDidEndEditing:                 (调代理)
UITextFieldTextDidEndEditingNotification(发通知)
UIKeyboardDidHideNotification           (发通知)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 20:18:46

关于 UITextField 和 键盘 的通知、代理调用顺序的相关文章

键盘事件的调用顺序及获取键盘大小

http://www.cocoachina.com/ios/20150703/12365.html 在涉及到表单输入的界面中,我们通常需要监听一些键盘事件,并根据实际需要来执行相应的操作.如,键盘弹起时,要让我们的UIScrollView自动收缩,以能看到整个UIScrollView的内容.为此,在UIWindow.h中定义了如下6个通知常量,来配合键盘在不同时间点的事件处理: 1 2 3 4 5 6 UIKeyboardWillShowNotification          // 键盘显示

在UITableViewController里面实现UITextField与键盘的自适应

tableview里面对textfield的键盘适应本身就是逻辑实现,利用下面代理函数将textfield的位置移到最优点. //将活跃的textview移动到tableview的中间 - (void)textFieldDidBeginEditing:(UITextField*)textField { UITableViewCell* cell = [self parentCellFor:textField]; if (cell) { NSIndexPath* indexPath = [self

UITextField常用属性与回收UITextfield的键盘

UITextField 是UIControl的子类,UIControl又是UIView的子类,所以也是一个视图,只不过比UIView多了两个功能,1.文字显示,2.文本编辑 使用过程分四步: 1.创建对象 2.配置属性 3添加到父视图 4.释放所有权 1.创建对象 UITextField *text = [[UITextField alloc] initWithFrame:CGRectMake(50, 50, 180, 50)];    text.backgroundColor = [UICol

IOS研究之多个UITextField的键盘处理

在IOS开发中使用UITextField时常需要考虑的问题就是键盘的处理.有时候,弹出的键盘会将UITextField区域覆盖,影响用户输入.这个时候就要将视图上移.这个时候我们需要考虑两点: 1,修改视图坐标的时机; 2,上移的偏移是多大. 3,UITableView设置Section间距 不明白的可以看看. 我根据自己实际操作的实现方法如下: 1,获取正在编辑的UITextField的指针 定义一个全局的UITextField的指针 UITextField *tempTextFiled; 在

iOS 通知代理执行代理方式时,代理为nil的解决办法

1.下面代码是描述: 点击Toolbar上的按钮时,通知代理去调代理方法. 1 - (void)didClickedToolbarBtn:(UIButton *)button 2 { 3 4 if ([self.delegate respondsToSelector:@selector(toolbar:didClickedButton:)]) { 5 [self.delegate toolbar:self didClickedButton:button.tag]; 6 } 7 self.sele

[转载]UITextField 与 键盘

键盘类型    : 1.UIKeyboardTypeDefault  默认键盘 2.UIKeyboardTypeASCIICapable   显示ASCII码值得键盘 3.UIKeyboardTypeNumbersAndPunctuation  显示数字和标点符号得键盘 4.UIKeyboardTypeURL  显示带有 .  / .com URL常用得符号得键盘 5.UIKeyboardTypeNumberPad 显示0到9得数字键盘  不支持自动大写 6.UIKeyboardTypePhon

iOS APP启动时所有方法的调用顺序分析

一个应用程序的启动过程要包括代理的创建,控制器的加载和控制器view的加载,这其中有很多关于生命周期的方法,每个方法都是有先后顺序的,如果调用顺序拿不准,或者某段代码写的方法不恰当,就会遇到各种奇葩问题.本文不怕麻烦的在几乎所有启动时要调用的方法里都用了 __FUNCTION__ 打印.结果还有有些地方出人意料的 首先回顾一下应用程序的启动过程 ①.先加载Main函数 ②.在Main函数里的 UIApplicationMain方法中,创建Application对象 创建Application的D

对应用程序启动时所有方法的调用顺序分析

一个应用程序的启动过程要包括代理的创建,控制器的加载和控制器view的加载,这其中有很多关于生命周期的方法,每个方法都是有先后顺序的,如果调用顺序拿不准,或者某段代码写的方法不恰当,就会遇到各种奇葩问题.本文不怕麻烦的在几乎所有启动时要调用的方法里都用了 __FUNCTION__ 打印.结果还有有些地方出人意料的 如果你不是在董铂然博客园看到本文,请点击查看原文 首先回顾一下应用程序的启动过程 ①.先加载Main函数 ②.在Main函数里的 UIApplicationMain方法中,创建Appl

Activity生命周期方法的调用顺序工程与测试日志

下面为测试activity的方法的执行顺序   工程与测试资源地址 android工程 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.finalizetest"