我添加了一个 TextView 并将其委托(delegate)分配给 View Controller 。
@IBOutlet var textview: UITextView!
var attributedString = NSMutableAttributedString()
override func viewDidLoad() {
super.viewDidLoad()
textview.delegate = self
attributedString = NSMutableAttributedString(attributedString:textview.attributedText!)
}
我有一个按钮,单击该按钮时将使用以下代码将自定义表情符号添加/附加到包含 NSTextAttachment
的 NSAttributedString
TextView 。
@IBAction func actAngry(_ sender: Any) {
let attachment = NSTextAttachment()
attachment.image = UIImage(named: "Angry")
let attributedEmoji = NSAttributedString(attachment: attachment)
attributedString.append(attributedEmoji)
textview.attributedText = attributedString
}
现在,当我单击发送按钮时,我想用一些代码替换该自定义表情符号,例如#43567
,这是表情符号的自定义代码。
@IBAction func sendNow(_ sender: Any) {
print(textview.attributedText)
print(textview.text)
}
因此,如果输入嗨,你好吗?
,然后按actAngry
按钮。
它看起来像嗨,你好吗?[Angry Image]
。
它应该转换为:Hi, How are you?#43567
,以便我可以将其发送到服务器。
我尝试过什么,我尝试按照委托(delegate)方法来获得一些想法,但失败了:
func textView(_ textView: UITextView, shouldInteractWith textAttachment: NSTextAttachment, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
最佳答案
找到THIS令人惊叹的库来执行此任务并使用它,您需要将两个文件添加到下面列出的项目中:
Emoji.swift
String+Emoji.swift
代码太长,所以我无法将其粘贴到此处。
现在,当您想向服务器发送文本时,可以这样使用它:
let emojiWithString = "Hi, How are you? 😁"
print(emojiWithString.emojiEscapedString)
这将打印:嗨,你好吗? :咧嘴笑:
您现在可以将此文本发送到服务器,当您从服务器收到相同的字符串时,您可以使用相同的库将字符串转换为表情符号:
let str = "Hi, How are you? :grin:"
print(str.emojiUnescapedString)
这将打印:
Hi, How are you? 😁
希望这会有所帮助。
关于ios - 如何将自定义表情符号的文本代码与 UITextView 中的文本一起发送到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42173129/