UITextField委托方法

1、指定是否允许文本字段开始编辑

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{ 
    //返回一个BOOL值,指定是否允许文本字段开始编辑,返回NO时不能唤起键盘进行编辑
    return YES; 
//可以在此处设置弹出键盘时页面布局
CGRect newTFRect = [textField convertRect:textField.bounds toView:self.view];
    CGFloat dist = (ScreenHeight - 216) - (newTFRect.origin.y + newTFRect.size.height + 100);

    if (dist < 0) {
        [UIView animateWithDuration:0.3 animations:^{
            self.view.bounds = CGRectMake(0, -dist, self.view.bounds.size.width, self.view.bounds.size.height);
        }];
    }

    return YES;
} 

2、开始编辑时触发

- (void)textFieldDidBeginEditing:(UITextField *)textField
{ 
   //开始编辑时触发,文本字段将成为first responder 
} 

3、指定是否允许文本字段结束编辑

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{ 
    //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder 
  //要想在用户结束编辑时阻止文本字段消失,可以返回NO 
  //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息(发送之后还是处于编辑状态,继续输入聊天内容)
  
    return NO; //一直处于编辑状态
} 

4、限制输入、判断输入内容等

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{ 
//当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。 
//这对于想要加入撤销选项的应用程序特别有用 
//可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。   
//要防止文字被改变可以返回NO 
//这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中 
 
    return YES; 
} 

5、指明是否允许根据用户请求清除内容

- (BOOL)textFieldShouldClear:(UITextField *)textField
{ 
   //返回一个BOOL值指明是否允许根据用户请求清除内容 
  //可以设置在特定条件下才允许清除内容 
   //返回YES,输入内容后,点击右边的清除按钮可以清除,返回NO,点击清除不起作用
    return YES; 
} 

6、指明是否允许在按下回车键时结束编辑

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{ 
//返回一个BOOL值,指明是否允许在按下回车键时结束编辑 
 //如果允许要调用resignFirstResponder 方法,这会导致结束编辑,而键盘会被收起[textField resignFirstResponder];
//查一下resign这个单词的意思就明白这个方法了 
    return YES; 
} 

你可能感兴趣的:(UITextField委托方法)