iOSTextFiled,TextView過濾表情,限制長度
摘要:
需求:在文字框中限制輸入表情,長度限制
實現原理: 通過這兩個控制元件的代理與通知實現
閱讀前提:
由於搜狗等不斷改善,可能小部分表情未能限制
原理較為簡單,不再講解
GitHub地址(附程式碼) :
簡書地址:
部...
需求:在文字框中限制輸入表情,長度限制
實現原理: 通過這兩個控制元件的代理與通知實現
閱讀前提:
- 由於搜狗等不斷改善,可能小部分表情未能限制
- 原理較為簡單,不再講解
GitHub地址(附程式碼) :
簡書地址:
部落格地址:
掘金地址:
注意
- 可以根據需求自行更改提示樣式等等
- 可以根據需求自行優化過濾演算法
- 好處:我們只需要有這樣一個類,以後專案中所有需要限制的地方僅僅需要直接匯入標頭檔案,引用類方法即可
使用方法:
1. 匯入標頭檔案
#import "XDXTextContentHandler.h"
2. 直接在對應的代理或通知中對用標頭檔案即可
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.testTextFiled.delegate = self; self.testTextView.delegate= self; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFiledEditChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.testTextFiled]; } #pragma mark - Notification - (void)textFiledEditChanged:(NSNotification *)obj { [XDXTextContentHandler handleTextFiledEditChangedWithNotification:obj textMaxLength:kTitleTextMaxLength isShowTip:YES]; } #pragma mark - Delegate #pragma mark TextFiled - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { return [XDXTextContentHandler handleTextFiledShouldChangeTextInRangeWithTextFiled:textField range:range replacementText:string isShowTip:YES]; } #pragma mark TextView - (void)textViewDidChange:(UITextView *)textView { [XDXTextContentHandler handleTextViewDidChangeWithTextView:textView textMaxLength:kTitleTextMaxLength isShowTip:YES]; } - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { return [XDXTextContentHandler handleTextViewShouldChangeTextInRangeWithTextView:textView range:range replacementText:text isShowTip:YES]; }