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;
}