国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - IOS textField限制字節長度

IOS textField限制字節長度

2021-01-07 15:10j12y12x12 IOS

這篇文章主要介紹了IOS textField限制字節長度的相關資料,需要的朋友可以參考下

OC語言中,NSString類型的字符串,視英文字母和漢字都為一個長度(string.length把一個漢字也當做一個長度),而實際上,一個英文字母只占用1個字節,一個漢字占用2個字節。

有時又有需求,需要限定字節數目,而不是內容個數,就需要通過一些方法獲取到字符串的字節數。比如,限定10個字節,則最多可以輸入10個英文字母,或者5個漢字。

監聽textField的長度變化,就需要設置textField的代理。

但是有個bug,監聽內容變化的代理方法

?
1
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

在點擊鍵盤輸入是正常的,但如果不點擊鍵盤按鍵,拿漢字輸入舉例,輸入一個字后,鍵盤上面會出現與該字可能是詞語的字,點上面出現的字來輸入,就不會觸發上面的代理方法。

所以這個代理方法不能用,我們需要通過注冊textField的通知來監聽。

?
1
2
//注冊通知,textfield內容改變調用
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldDidChange:) name:UITextFieldTextDidChangeNotification object:self.testTextField];

實現通知方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- (void)textFieldDidChange:(NSNotification *)note{
UITextField *textField = note.object;
//獲取文本框內容的字節數
int bytes = [self stringConvertToInt:self.testTextField.text];
//設置不能超過32個字節,因為不能有半個漢字,所以以字符串長度為單位。
if (bytes > 16)
{
//超出字節數,還是原來的內容
self.testTextField.text = self.lastTextContent;
}
else
{
self.lastTextContent = self.testTextField.text;
}
}
//得到字節數函數
- (int)stringConvertToInt:(NSString*)strtemp
{
int strlength = 0;
char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++)
{
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return (strlength+1)/2;
}

如果textField一開始就有內容,就要獲取到,用代理方法

?
1
2
3
4
5
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
self.lastTextContent = textField.text;
return YES;
}

以上所述是小編給大家介紹的IOS textField限制字節長度的相關內容,希望對大家有所幫助。

延伸 · 閱讀

精彩推薦
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5272021-01-16
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111302021-03-15
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
主站蜘蛛池模板: 中文字幕影视 | 亚洲香蕉视频 | 日韩一级视频 | 亚洲欧美成人综合 | 看国产黄色片 | 中文字幕一区二区三区四区 | 亚洲国产精品无卡做爰天天 | 国产精品久久久久久中文字 | 羞羞视频免费观看 | 中文字幕观看 | 极品videossex中国妞hd | 久久久香蕉| 亚洲爽爽 | 青青操av | 99久久久成人国产精品 | 亚洲国产欧美日韩 | 91综合在线 | 久色视频在线 | 成人免费黄色 | 日韩中文字幕在线视频 | 99久久精品免费看国产四区 | 日韩精品免费在线视频 | 国产h片在线观看 | 香港黄色录像片 | 亚洲精品在线中文字幕 | 国产综合视频 | 日韩欧美大片在线观看 | 国产午夜在线 | 亚洲精品久久久蜜桃 | 97天堂| 中文字幕在线播放一区 | 成人黄色短视频在线观看 | 国产成人99久久亚洲综合精品 | 久久精品一区二区三区四区 | 久久久亚洲精品视频 | 国产精品日本 | 黄色三级网站在线观看 | 国产精品亚洲第一区在线暖暖韩国 | 国产精品毛片久久久久久久 | 中文字幕亚洲欧美日韩在线不卡 | 成人午夜 |