大家好,今天小编来为大家解答以下的问题,关于高效文本输入:UITextField与UITextView表情过滤技巧,这个很多人还不知道,现在让我们一起来看看吧!
UITextView中的代理方法:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)范围替换Text:(NSString *)文本
{
//仅当键盘为Emoji时禁用
if ([[[UITextInputMode currentInputMode] PrimaryLanguage] isEqualToString:@"emoji"]) {
返回否;
}
//添加我们的项目禁止回车换行
if ([text isEqualToString:@"n"]){ //判断输入的单词是否为回车符,即按return UITextView禁用换行符
返回否; //这里返回NO表示返回键值无效,即页面上按回车不会导致换行。如果是的话,输入页面就会断行。
}
返回是;
}
那么还有一种情况,在键盘上输入文字后,想到的是表情包解决方案:
-(void)textViewDidChange:(UITextView *)textView
{
//Emoji表情输入后是两个字符,所以使用此方法。如果检测到已经输入了该表达式,则直接删除该表达式。
if ([self stringContainsEmoji:textView.text]) {
textView.text=[textView.text substringToIndex:textView.text.length-2];
}
}
注意:这里有一个BUG。 -2 仅适用于表情符号。但如果输入“得到”等词语,与之关联的表情符号为3个字符,所以暂时不下达判断。使用时请注意。获得的文本为空。
//判断条件
- (BOOL)字符串包含Emoji:(NSString *)字符串
{
__block BOOL 返回值=NO;
[string enumerateSubstringsInRange:NSMakeRange(0, [字符串长度])
options:NSStringEnumerationByComlatedCharacterSequences
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enleadingRange, BOOL *stop) {
const unichar hs=[子字符串characterAtIndex:0];
如果(0xd800=hs hs=0xdbff){
if (子串.长度1) {
const unichar ls=[子字符串characterAtIndex:1];
常量int uc=((hs -0xd800) *0x400) + (ls -0xdc00) +0x10000;
如果(0x1d000=uc uc=0x1f77f){
返回值=是;
}
}
} else if (substring.length 1) {
const unichar ls=[子字符串characterAtIndex:1];
如果(ls==0x20e3){
返回值=是;
}
} 别的{
如果(0x2100=hs hs=0x27ff){
返回值=是;
} 否则如果(0x2B05=hs hs=0x2b07) {
返回值=是;
} 否则如果(0x2934=hs hs=0x2935) {
返回值=是;
} 否则如果(0x3297=hs hs=0x3299) {
返回值=是;
} else if (hs==0xa9 || hs==0xae || hs==0x303d || hs==0x3030 || hs==0x2b55 || hs==0x2b1c || hs==0x2b1b || hs==0x2b50 ){
返回值=是;
}
}
}];
返回返回值;
【高效文本输入:UITextField与UITextView表情过滤技巧】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于有解决这个问题的方法了!
有7位网友表示赞同!
我之前一直都在找教程,太棒了!
有13位网友表示赞同!
学习一下这个方法,提高我的开发效率。
有12位网友表示赞同!
苹果自带的表情包也很好用呀,不过还是要考虑用户体验。
有13位网友表示赞同!
过滤表情确实能避免很多不必要的麻烦。
有14位网友表示赞同!
这样能够保证输入框的内容更加专业吧?
有10位网友表示赞同!
文本编辑的时候经常会遇到这个烦恼,希望这篇文章能解决我的问题!
有10位网友表示赞同!
感觉iOS开发越来越复杂了,很多都需要学习新的技巧。
有8位网友表示赞同!
我以前是直接使用系统自带的功能来处理表情的,这个方法更好吗?
有19位网友表示赞同!
不知道这种过滤方式会对用户的输入体验造成什么影响呢?
有12位网友表示赞同!
希望能有详细的代码示例,方便我学习!
有5位网友表示赞同!
这个功能对于一些需要严格控制内容的应用来说很有用。
有8位网友表示赞同!
我想了解一下支持哪些类型的表情符号过滤器。
有16位网友表示赞同!
不知道过滤表情会有没有其他影响呢?
有10位网友表示赞同!
文章介绍得比较全面,看起来很好理解
有14位网友表示赞同!
学习这个知识点非常有针对性,可以优化我的app体验。
有6位网友表示赞同!
我平时很少用到UITextField和UITextView这类组件,但也该了解一下这种过滤机制了!
有16位网友表示赞同!
感谢作者分享如此有用的教程!
有12位网友表示赞同!
期待更多的苹果开发技巧教程!
有18位网友表示赞同!
这篇文章让我对iOS开发有了更进一步的了解。
有5位网友表示赞同!