最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
怎么在iOS中使用textField限制字符串長度

本篇文章為大家展示了怎么在iOS中使用textField限制字符串長度,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

方法如下:

1、判斷字符串是否超出長度

[self.txfUsername addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
 - (void)textFieldDidChange:(id)sender
{
 if (self.textField.text.length > MAXLENGTH) // MAXLENGTH為最大字?jǐn)?shù)
 {
 //超出限制字?jǐn)?shù)時所要做的事
 }
}

為什么在這里要自己監(jiān)聽textField中文字的變化,而不直接使用textField的代理方法-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ ?

因?yàn)檫@個方法在中文書輸入法下,只能輸入一個詞的情況,如果聯(lián)想詞是兩個詞,也可以輸入。所以會出現(xiàn)誤差。直接監(jiān)聽UIControlEventEditingChanged 是最靠譜的。

2、超出長度不可輸入

if (self.textField.text.length > MAXLENGTH) // MAXLENGTH為最大字?jǐn)?shù)
 {
 self.textField.text = [self.txfUsername.text substringToIndex: MAXLENGTH]; // MAXLENGTH為最大字?jǐn)?shù)
 }

如果超出長度,永遠(yuǎn)把前MAXLENGTH的子字符串賦給textField的text,即textField永遠(yuǎn)只顯示前MAXLENGTH個字,視覺效果就是無法繼續(xù)輸入。

3、前面所有用到的MAXLENGTH均為字符串長度,不論數(shù)字字母還是漢字,最后要解決的問題就是判斷字符數(shù)。

//按照中文兩個字符,英文數(shù)字一個字符計(jì)算字符數(shù)
-(NSUInteger) unicodeLengthOfString: (NSString *) text {
 NSUInteger asciiLength = 0;
 for (NSUInteger i = 0; i < text.length; i++) {
 unichar uc = [text characterAtIndex: i];
 asciiLength += isascii(uc) ? 1 : 2;
 }
 return asciiLength;
}

NSUInteger lenOfBytes = [text lengthOfBytesUsingEncoding:NSUTF8StringEncoding];也試過,lengthOfBytesUsingEncoding就是按照編碼返回字節(jié)數(shù),但是NSUTF8StringEncoding是按照英文一個字符,中文三個字符來編碼的,NSUnicodeStringEncoding是按照英文數(shù)字漢字都是兩個字符編碼的,目前iOS中的編碼方法都和需求不符,所以需要另外做計(jì)算。

上述內(nèi)容就是怎么在iOS中使用textField限制字符串長度,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前題目:怎么在iOS中使用textField限制字符串長度
鏈接URL:http://fisionsoft.com.cn/article/jddpii.html