iOS开发 ☞ UITextView使用详解

来源:互联网 发布:jquery封装json数据 编辑:程序博客网 时间:2024/05/16 09:07

一、限制输入字数
方案一

//只能判断非联想输入,pass- (BOOL)textView:(UITextView *)textView      shouldChangeTextInRange:(NSRange)range       replacementText:(NSString *)text 

方案二

//通用方法- (void)textViewDidChange:(UITextView *)textView;  

经常碰到UITextView限制输入字数的需求,那么问题来了,系统键盘中文输入法时,拼音也会显示在输入框中,这样在所以没输入一个字母,都会执行- (void)textViewDidChange:(UITextView *)textView,从而使得计算最大字数出现问题,解决办法如下:
在 - (void)textViewDidChange:(UITextView *)textView方法中

if ([[[textView textInputMode] primaryLanguage] isEqualToString:@"zh-Hans"]) {        UITextRange *selectedRange = [textView markedTextRange];        UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];        if (!position) {        //计算字数        }    }else {    //计算字数        }    }

上面这个方法在iOS9上,中文输入法下一直输入,position会为空,从而导致用户输入的拼音都不见了。

有些时候为了防止刷屏,只输入换行的情况下是不允许发送的,对于像讯飞、百度这样的键盘可以用这样判断:

if ([[text stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" \n"]] isEqualToString:@""]) {        return;    }

搜狗的换行为\r

禁用第三方键盘:在Appdelegate里

- (BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier{    return NO;}
1 0
原创粉丝点击