TextField和TextView字數超出擷取問題
在IOS開發中,我們經常需要對textfield和textView中的文字進行限制,
對於超出限制的內容進行擷取。但在實際開發過程中會遇到一些問題:
1.在輸入中文的時候,系統會在你開始拼音的時候就統計字數,使得你
在輸最後幾個字時,拼音都打不全
2.對於表情,預設length為2,當表情超出限制時,一個表情的length會
被截成1,導致亂碼
還有一種更簡單的方法,直接使用代理控制:
對於textView,實現下面兩個代理:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange )range replacementText:(NSString *)text {
NSString *strNew = [textView.text stringByReplacingCharactersInRange:range withString:text];
NSInteger res = MaxWordsLength - strNew.length;
if (res >= 0) {
return YES;
}else {
[UIView markToast:[NSString stringWithFormat:@"原因不能超過%@個字" ,@(MaxWordsLength)]];
return NO;
}
}
- (void)textViewDidChange:(UITextView *)textView {
if (textView.markedTextRange == nil && textView.text.length > MaxWordsLength) {
textView.text = [textView.text substringToIndex:MaxWordsLength];
}
}
而textfield沒有實時監控的代理,需要先給它新增方法:
[self.txf addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
//實現代理和自定義方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *strNew = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSInteger res = MaxWordsLength - strNew.length;
if (res >= 0) {
return YES;
}else {
[self showMessage:[NSString stringWithFormat:@"暱稱不能超過%@個字",@(MaxWordsLength)]];
return NO;
}
}
//shouldChangeCharacter不識別中文和聯想字,所以再加一個實時監控的方法
- (void)textFieldDidChange:(UITextField *)textField{
if (textField.markedTextRange == nil && textField.text.length > MaxWordsLength) {
textField.text = [textField.text substringToIndex:MaxWordsLength];
}
}
相關推薦
TextField和TextView字數超出擷取問題
在IOS開發中,我們經常需要對textfield和textView中的文字進行限制, 對於超出限制的內容進行擷取。但在實際開發過程中會遇到一些問題: 1.在輸入中文的時候,系統會在你開始拼音的時候就統計
textField和textView字數限制
在字元的限制中可能會遇到兩種情況, 第一種是如何將一個漢字相當於兩個字元的佔位空間, 第二種是當輸入法是中文時限制字元的判斷會出錯,因為textField :shouldChangeCharactersInRange:replacementString這
ios textfield和textView完美簡單的字數限制
如果是textfield新增一個方法[self.textField addTarget:self action:@selector(textFieldChanged:) forControlEvents:UIControlEventEditingChanged] 如果是te
禁止textField和textView的複製貼上選單:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender { if ([UIMenuController sharedMenuCont
iOS中TextField 和 TextView 控制元件的基本使用
介紹-introduction This time I want to create a new simple project which is a self-introduction program to show some fundamental w
js控制當字數超出規定行數時顯示點點點
scrip 函數 jquery logs color ips row end function 調用方法: 每次只為一個元素服務,也就是傳入函數的選擇器(class名)頁面中只能有一個,或直接傳id; 比如: //1要限制字數的元素,2要顯示多少行,3要限制字數元素的
div或者p標籤單行和多行超出顯示省略號
單行文字溢位顯示省略號 overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 多行文字顯示省略號 display: -webkit-box; -webkit-box-orient:&nb
android中關於textview字數顯示的問題
只需要下邊的設定: textview.setSingleLine(); textview.setEllipsiz(TextUtils.TruncateAt.valueOf("END")); 在xml中設定如下: android:singleLine="true" android:ell
TextField和EditBox的 區別
TextField和EditBox的 區別 TextField: 先新增標頭檔案: #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h" USING_NS
TextField和Graphics類
TextField類 java.awt.TextField類用來建立文字框物件 TextField有如下常用方法 TextField() TextField(int columns) TextField(String text) TextField(Stri
關於iOS對textView字數限制的一些解法
現在的伺服器一般是不會對字數做限制的,但是遇到一個需求需要對字數做限制,並且同時更新剩餘的字數,也許有些朋友會想著用textField或label來做,單是總是存在一些不完美,或一些其他的問題難解決. 用textField的話,自動換行是個難題,因為他並不提供這個屬性.
Android開發——線性佈局和TextView基本用法
Android開發——線性佈局和TextView的基本用法 一、線性佈局-LinearLayout 在LinearLayout這個控制元件中,有這許多屬性可以設定,下面是最為基礎的屬性 <LinearLayout android:layout_wid
移動端textarea輸入框監聽和輸入字數限制(相容ios和Android)
html <div class="textareaBox"> <textarea class="wishContent" placeholder="請輸入不超過15個字" maxlength="15"></te
DEDECMS改變欄目的關鍵詞和描述字數
1.改變欄目的關鍵詞和描述字數: 在系統工具---SQL命令列工具---執行SQL命令列: &nb
SpannableString中的ClickableSpan和Textview點選事件衝突解決
背景描述:專案中有這樣的需求:在展示評論內容的Textview中展示文字,其中包含3種類型資料: 1、普通文字:評論內容或者回復內容。因為這個Textview是展示評論或者回復的,點選後,要展示軟鍵盤(popupwindow等忽略) 2、股票程式碼:該型別文
Androi實戰—EidtText和TextView顯示指定行數,內容過長自動換行問題
EidtText和TextView中內容過長的話自動換行,使用android:ellipsize與android:singleine可以解決,使只有一行。使用android:maxLines可設定最大行數。
給UITextView 頭部插入檢視(同理 給YYTextView加上頭部,解決scrollview和textview衝突的問題)
PS: _headView要成為textview的子view [textview addsubview:_headview]; 有時候我們需要在UITextView的上面插入檢視的樣式,並且要求其隨著輸入一起滑動,這時候沒有必要再加一個UIScrollVie
Html中文字過多,單行超出和多行超出顯示省略號
本部落格主要介紹 前端開發中文字過多,以省略號顯示。 效果如圖: 單行: <!--單行--> <p class="pl">這個屬性定義溢位元
textarea輸入框監聽和輸入字數限制
html <textarea class="wishContent" placeholder="請輸入不超過15個字" maxlength="15"> </textarea>
自定義TextView,解決計算listView中item高度的時候,如果其中的TextView字數超過一行,只計算到一行高度的問題
動態計算listView中item 的高度時,如果其中textview超過一行,只會計算其中第一行的剛度,(雙層listview巢狀使用時經常出現這種問題)。我們需要自定義textview,動態計算textView的高度,具體程式碼如下 package com.e