ios 如何判断用户输入的是不是 emoji

1、如果是 UITextField ,在 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 代理方法中获取用户输入的文本,即 string

2、如果是 UITextView,在 func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool 代理方法中获取用户输入的文本,即 text

3、获取到用户输入的文本后,调用下面的 isEmoji() 方法就可以判断了。

public extension String {
    /// 判断是否包含Emoji表情
    func isEmoji() -> Bool {
        let numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
        guard !numbers.contains(self) else {
            return false
        }

        let scalars = self.unicodeScalars.map { $0.value }
        for element in scalars {
            if let scalar = Unicode.Scalar.init(element){
                if #available(iOS 10.2, *) {
                    if scalar.properties.isEmoji {
                        return true
                    }
                }
            }
        }
        return false
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容