前言
深入理解iOS API系列是一個較深解讀iOS API的博文集,限于時間和作者精力贤壁,內(nèi)容并不會全部原創(chuàng)悼枢,但是涵蓋的內(nèi)容,應(yīng)該是廣大iOS開發(fā)者脾拆,特別是初中級開發(fā)者經(jīng)常誤解或理解不夠深刻的部分馒索。
主要是深入理解代理方法textField:shouldChangeCharactersInRange:replacementString:的使用。
轉(zhuǎn)自http://www.cnblogs.com/Clin/p/3413146.html
如果要限制UITextField輸入長度最長不超過kMaxLength名船,那么需要實現(xiàn)做以下操作:
1双揪、實現(xiàn)UITextFieldDelegate協(xié)議;
2包帚、實現(xiàn)textField:shouldChangeCharactersInRange:replacementString:方法渔期;
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSInteger strLength = textField.text.length - range.length + string.length;
return (strLength <= kMaxLength);
}
方法- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
功能:
把textField中位置為range的字符串替換為string字符串;
此函數(shù)在textField內(nèi)容被修改時調(diào)用渴邦;
返回值:
YES疯趟,表示修改生效;NO谋梭,表示不做修改信峻,textField的內(nèi)容不變。
參數(shù)說明:
textField:響應(yīng)UITextFieldDelegate協(xié)議的UITextField控件瓮床。
range:? ? UITextField控件中光標選中的字符串盹舞,即被替換的字符串产镐;
range.length為0時,表示在位置range.location插入string踢步。
string:? ? 替換字符串癣亚;
string.length為0時,表示刪除获印。
另外:http://www.tuicool.com/articles/yyQRnq
iOS6下UITextField退格變清空問題的解決方法