以下为UITextFieldDelegate的代理方法:
// renturn NO 不允许编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;
// 开始编辑(开始成为第一响应者)
- (void)textFieldDidBeginEditing:(UITextField *)textField;
// 返回YES 允许编辑停止 结束第一响应者状态
// 返回NO 不允许编辑 回话结束
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;
// 如果让textFieldShouldEndEditing方法为NO的话 比如(视图从window上移除, 编辑结束的时候)
- (void)textFieldDidEndEditing:(UITextField *)textField;
// return NO 不改变文本
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
// 清除按钮按下的时候触发 return NO 的话 忽略通知
- (BOOL)textFieldShouldClear:(UITextField *)textField;
// 键盘上return按钮按下时触发 returnNO的话 忽略通知
- (BOOL)textFieldShouldReturn:(UITextField *)textField;
// 三个通知中心的 消息对象name
// 用于监听键盘上弹 回收改变view frame时的通知消息
// 键盘开始编辑的通知
UIKIT_EXTERN NSString *const UITextFieldTextDidBeginEditingNotification;
// 键盘结束编辑的通知
UIKIT_EXTERN NSString *const UITextFieldTextDidEndEditingNotification;
//键盘改变时的通知
UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;