中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS中輸入框字數統計和最大長度限制的示例分析

發布時間:2021-08-07 13:59:53 來源:億速云 閱讀:269 作者:小新 欄目:移動開發

小編給大家分享一下iOS中輸入框字數統計和最大長度限制的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

對于 iOS 系統自帶的鍵盤,有時候它在輸入框中填入的是占位字符(已被高亮選中起來),等用戶選中鍵盤上的候選詞時,再替換為真正輸入的字符,如下:

iOS中輸入框字數統計和最大長度限制的示例分析

這會帶來一個問題:比如輸入框限定最多只能輸入 10 位,當已經輸入 9 個漢字的時候,使用系統拼音鍵盤則第 10 個字的拼音就打不了(因為剩余的 1 位無法輸入完整的拼音)。

iOS輸入框的字數統計/最大長度限制

怎么辦呢?上面提到,輸入框中的拼音會被高亮選中起來,所以我們可以根據 UITextField 的 markedTextRange 屬性判斷是否存在高亮字符,如果有則不進行字數統計和字符串截斷操作。我們可以通過監聽 UIControlEventEditingChanged 事件來對輸入框內容的變化進行相應處理,如下:

[self.textField addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChanged:(UITextField *)textField {
 // 判斷是否存在高亮字符,如果有,則不進行字數統計和字符串截斷
 UITextRange *selectedRange = textField.markedTextRange;
 UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
 if (position) {
 return;
 }
 
 // maxWowdLimit 為 0,不限制字數
 if (self.maxWowdLimit == 0) {
 return;
 }

 // 判斷是否超過最大字數限制,如果超過就截斷
 if (textField.text.length > self.maxWowdLimit) {
 textField.text = [textField.text substringToIndex:self.maxWowdLimit];
 }
 // 剩余字數顯示 UI 更新
}

對于 UITextView 的處理也是類似的。

另外,對于“字數”的定義是很多種理解:在 Objective-C 中字符串 NSString 的長度 length,對于一個中文漢字和一個英文字母都是 1;但如果我們要按字節來統計和限制,同一字符的在不同編碼編碼下所占的字節數也是不同的;另外有時我們要統計的是所輸入文本的單詞個數,而不是字符串的長度,所以我們需要根據不同的使用場景進行分析。

以上是“iOS中輸入框字數統計和最大長度限制的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

安顺市| 长岛县| 互助| 太和县| 濉溪县| 衡南县| 达州市| 新乡县| 七台河市| 车险| 永新县| 安塞县| 苍南县| 腾冲县| 武安市| 大田县| 罗江县| 礼泉县| 浙江省| 老河口市| 华阴市| 北票市| 嘉祥县| 兴文县| 共和县| 中宁县| 新平| 离岛区| 临沧市| 年辖:市辖区| 桐城市| 吴桥县| 汽车| 电白县| 韶山市| 英德市| 新沂市| 昭苏县| 衡山县| 大港区| 乐至县|