UITextFieldDelegate协议

很多人都认为UITextField很简单,为什么会写这个协议呢?

因为在实际开发中可能会用到;

比如要做到下图的效果:

文本框下面的下划线的颜色要随着输入的状态变化;

点击对应的文本框,其下面的线条变为绿色,结束编辑,变为灰色;

要熟悉UITextFieldDelegate协议才能做到这一点;

首先,先看一下官方的说明:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.
- (void)textFieldDidBeginEditing:(UITextField *)textField;           // became first responder
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;          // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
- (void)textFieldDidEndEditing:(UITextField *)textField;             // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text

- (BOOL)textFieldShouldClear:(UITextField *)textField;               // called when clear button pressed. return NO to ignore (no notifications)
- (BOOL)textFieldShouldReturn:(UITextField *)textField;              // called when ‘return‘ key pressed. return NO to ignore.

1、

- (void)textFieldDidBeginEditing:(UITextField *)textField;

文本框已经开始编辑

2、

- (void)textFieldDidEndEditing:(UITextField *)textField; 

文本框已经结束编辑

3、其他设置是否允许的输入控制

1、- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.   //控制是否允许输入,返回值是NO的时候,禁止输入;

2、- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;          // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
   //是否结束输入,返回值是YES时候,允许停止输入,并且释放第一响应;返回NO的时候,则相反;

3、- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text    //是否改变输入文本,返回NO的时候,不保存修改4、- (BOOL)textFieldShouldClear:(UITextField *)textField;               // called when clear button pressed. return NO to ignore (no notifications)   //当清空按钮时候调用,返回是NO的时候,忽视清空
5、- (BOOL)textFieldShouldReturn:(UITextField *)textField;              // called when ‘return‘ key pressed. return NO to ignore.
   //当点击return按钮时候调用该方法,返回是NO的时候,不做任何响应;

时间: 2024-11-03 22:25:51

UITextFieldDelegate协议的相关文章

UITextFieldDelegate协议中各个方法的作用与Xcode中AppDelegate.m中自动生成各个方法的作用(iOS)

UITextFieldDelegate协议中各个方法的作用 控制当前输入框是否能被编辑 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 当输入框开始时触发(获得焦点触发) - (void)textFieldDidBeginEditing:(UITextField *)textField 询问输入框是否可以结束编辑(键盘是否可以收回) - (BOOL)textFieldShouldEndEditing:(UITextFiel

iOS UITextFieldDelegate协议

很多人都认为UITextField很简单,为什么会写这个协议呢? 开发中可能会用到: 比如: 文本框下面的下划线的颜色要随着输入的状态变化: 所以,要熟悉UITextFieldDelegate协议 首先,先看一下官方的说明: - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing. - (void)textFieldDidBeginEditing:(UITextF

IOS 键盘协议之中的一个 <UITextFieldDelegate>

1. 设置键盘的第一响应者后,便可通过点击TextField唤出键盘 设置键盘第一响应者方法为: [textField becomeFirstResponder];//此时,textField 输入框则为当前键盘的第一响应者,故仅仅要 textField失去第一响应者,键盘才会消失 设置键盘失去第一响应者的方法为: [textField resignFirstResponder];//一般在设置点击button的对应事件内,或写在UIView的点击触发事件内(此时点击屏幕的不论什么地方都可响应)

【iOS开发-16】UITextField协议的用法,键盘的隐藏,以及视图随着键盘的出现隐藏而上下调整位置

(1)有很多对于文本框的编辑和结束编辑的设置需要用到文本框协议,即UITextFieldDelegate:先在AppDelegate.h中加入<UITextFieldDelegate>协议,然后就可以在ViewController.m中使用.比如我们本例中对t1这个文本框对象设置了代理,代理self,即本视图控制器类,所以在本类中使用的方法都会影响t1,即可以设置t1.(最后几句为猜测,后续继续学习看是否如此). (2)当然真正的几个函数其实没甚么意思,无非就是是否允许编辑和结束编辑,如果真的

【解决方法】iOS 开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     

IOS基础控件--UIImageView、UITextField

UIImageView:1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 4 UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(SCREENWIDTH / 2 - 46, 66, 92, 84)]; 5 imgView.image = [UIImage imageNamed:@"logo"]; 6 [self.view addSubview:imgVi

【Objective-C学习记录】第三十六天

今天学习了一下UILabel UITextField UIButton UIImage这几个基础控件,UILabel没什么好说的,因为不涉及到交换的工作,记住几个属性就行了. UITextField这个东西,遇到了不少问题.我用的是XCode7.2,建立空应用(Empty Application)后,UITextField里无论怎么点击都没有反应,用XCode6.3打开却是正常的,后来也不知道为什么时而正常时而报错,找了一下午问题还是没找到,只能先用6.3做着了. 说到UITextField,主

TextFieldDelegate

#import "AppDelegate.h" @interface AppDelegate ()<UITextFieldDelegate> @end @implementation AppDelegate /* 回收键盘的步骤 1.遵守UITextFieldDelegate协议 2.创建UITextField对象 3.设置UITextField对象的delegate属性为AppDelegate 4.实现UITextFieldDelegate的textFieldShould

UITextField属性

0. enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. 1.borderStyle 设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBorderStyleBezel