本文主要说明如何实现在键盘出现的时候整个视图也跟着向上移动(主要是解决键盘会遮挡textField的现象),在键盘消失的时候视图恢复到原来的位子
一、首先分别说明下
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.
接下来对每个方法进行解释说明
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;
在方法中return一个YES或者是NO来决定文本框是否可以编辑,默认值为YES
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;
在方法中return一个YES或者是NO来决定文本框是否可以结束编辑,默认值为YES
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
在方法中return一个YES或者是NO来决定文本框的内容是否可以被修改,默认值为YES
- (BOOL)textFieldShouldClear:(UITextField *)textField;
在方法中return一个YES或者是NO来决定文本框的内容是否可以清楚,默认为YES