接近完美禁用iOS的emoji表情键盘

支持iOS搜狗输入法和自动关联表情(如输入hehe,出来的表情)

注意:Swift的textView.text != disable_emoji(textView.text)

在OC里面用 ![xxx isEqualString:bbb]

转帖保留(谢谢):http://www.cnblogs.com/Leetvin/p/4384141.html

@IBOutlet weak var tf: UITextField!

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

tf.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

func textViewDidChange(textView: UITextView) {

var textTange = textView.selectedTextRange

if(textView.text != disable_emoji(textView.text))

{

textView.text = disable_emoji(textView.text)

}

textView.selectedTextRange = textTange

}

func textFieldDidChange(textField: UITextField) {

var textTange = textField.selectedTextRange

if(textField.text != disable_emoji(textField.text))

{

textField.text = disable_emoji(textField.text)

}

textField.selectedTextRange = textTange

}

func disable_emoji(text:String)->String

{

var regex = NSRegularExpression(pattern: "[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]", options: NSRegularExpressionOptions.CaseInsensitive, error: nil)

var modifiedString = regex!.stringByReplacingMatchesInString(text, options: NSMatchingOptions(), range: NSMakeRange(0, text.utf16Count), withTemplate: "")

return modifiedString

}

时间: 2024-11-05 12:30:19

接近完美禁用iOS的emoji表情键盘的相关文章

mysql支持IOS的Emoji表情

原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去. 解决办法: 将Mysql的编码从utf8转换成utf8mb4 步骤: 1.修改mysql配置文件 my.ini default-character-set=utf8mb4 character-set-server=utf8mb4 2.加入 [client] port=3306 default-character-set=utf8mb4 [mysqld]下加入

iOS_仿QQ表情键盘

当UITextFiled和UITextView这种文本输入类控件成为第一响应者时,弹出的键盘由他们的一个UIView类的inputView属性来控制,当inputView为nil时会弹出系统的键盘,想要弹出自定义的键盘,将我们自定义的UIView对象给inputView属性赋值即可.表情键盘重点在于排列各个表情和删除键,以及表情键盘上的各种回调设置: 下面为键盘预览图,兼容了竖屏各版本适配,横屏没有兼顾.横屏适配参见这篇博客iOS之自定义表情键盘 图1为6的常用表情,图2为6的全部表情,图3为5

IOS Emoji表情

IOS Emoji 前言:我比较喜欢有趣的东西,有一些有趣的小东西,可能不是多么多么牛逼,也可能不需要多高深的技巧,也不会为其他什么强大的功能而服务,但是有时候将很多有趣的小东西组合起来运用,比如在你的app某个功能上适当添加这个有趣的小东西的时候,说不定就能起到锦上添花的作用,更能吸引用户.下面就粗略介绍IOS Emoji表情字符. 关于IOS Emoji我才刚刚了解,还有很多东西不是特别清楚,等待以后有时间深入探索更多的应用知识. 然后展示我之前运用到按钮上的一个案例,是不是有点意思: 这个

iOS开发之自定义表情键盘(组件封装与自动布局)

下面的东西是编写自定义的表情键盘,话不多说,开门见山吧!下面主要用到的知识有MVC, iOS开发中的自动布局,自定义组件的封装与使用,Block回调,CoreData的使用.有的小伙伴可能会问写一个自定义表情键盘肿么这么麻烦?下面将会介绍我们如何用上面提到的东西来定义我们的表情键盘的.下面的内容会比较多,这篇博文还是比较有料的. 还是那句话写技术博客是少不了代码的,下面会结合代码来回顾一下iOS的知识,本篇博文中用到的知识点在前面的博客中都能找到相应的内容,本篇算是一个小小的功能整合.先来张图看

php mysql 存储 IOS Emoji表情失败和乱码问题

感谢伟大的网络,给我们带来了很多有用的信息 然后开始 项目需要给app提供接口,发现IOS开发存储Emoji表情失败,或者乱码,在这里给自己留个记录以及给大家带来一些参考 首先是字符集的问题,mysql字符集大多数使用的是utf8,需要把字符集更换成utf8mb4,因为UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,utf8mb4则扩展到一个字符最多能有4字节,并且兼容utf8 在mysql终端查看下mysql当前版本所支持的字符集,

iOS 禁止输入空格、emoji表情

1.首先先遵循UITextField 的代理方法 UITextFieldDelegate 2.#pragma mark ------>> 使用键盘的代理方法对输入进行控制 监听的效果 <<------ // 这里返回 NO 就是不让键盘输入 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)stri

ios开发之--仿(微信)自定义表情键盘

先附上demo:https://github.com/hgl753951/CusEmoji.git 效果图如下: 先说下具体的实现功能: 1,本地加载了一些H5的代码,直接使用webview的load方法加载出来的 2,获取web的动态高度,然后创建tableview,把webview加到一个tableview的headerview上, 3,实现cell的自定义高度,是用xib实现的 4,评论功能的实现,自定表情键盘,可以发送表情,文字等相关信息 这个demo里面有2个效果,第一个是我自己写的很

【iOS开发】emoji表情的输入思路

1.自定义一个表情包类继承NSTextAttachment 2.每个emoji表情其实就是一张图片,并且每张图片都有统一的编号,也就是说一个emoji 3.将emoji的图片赋值给自定义的表情包类image属性,并且将emoji转为富文本 4.发送时将富文本转为对应图片编号发送给服务器

iOS emoji表情转码 或者判断

如果项目中有评论或者信息恢复的地方,往往会用到emoji,有时候如后台不支持emoji,就会显示乱码错误,我们可以把emoji转成unicode编码或者utf8编码格式传给服务器.当然如果后台服务器接收的时候能做好判断识别最好,我们这边后台是支持的,我仅记录一下方法,以备不时之需. 先定义一个UITextView 并设置代理 设定一个宏定义,用来判断emoji #define MULITTHREEBYTEUTF16TOUNICODE(x,y) (((((x ^ 0xD800) << 2) |