亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

弋阳县| 博湖县| 吴川市| 门头沟区| 历史| 彝良县| 宣汉县| 梨树县| 达拉特旗| 吉木萨尔县| 新干县| 辉南县| 弋阳县| 达州市| 胶州市| 雷州市| 嘉义县| 喀喇沁旗| 德江县| 天水市| 沈阳市| 社旗县| 秭归县| 安阳市| 利津县| 拜泉县| 大丰市| 玉屏| 广安市| 中江县| 青阳县| 苗栗市| 北流市| 讷河市| 岳池县| 寻乌县| 乌恰县| 白山市| 定安县| 东丰县| 韶关市|