@objc private func setEmotion(noti : NSNotification)
{
let emotion = noti.userInfo!["emotion"] as! XBEmotion
if let png = emotion.png
{
//保存之前的內容
let beforeAttributeString = NSMutableAttributedString(attributedString: MytextView.attributedText)
// 設置一個附件
let attachment = XBTextAttachment()
attachment.emotion = emotion
//設置附件圖片
let imagePath = "\(emotion.path!)/\(png)"
attachment.image = UIImage(named: imagePath)
//用附件來初始化一個字符穿 attrabute
let attribute = NSAttributedString(attachment: attachment)
//attachment.bounds = CGRectMake(0, 0, MytextView.font!.lineHeight, MytextView.font!.lineHeight) 設表情大小的方式 也可以
//beforeAttributeString.appendAttributedString(attribute)
//根據光標來設置插入的位置c
let range = MytextView.selectedRange
beforeAttributeString.insertAttributedString(attribute, atIndex: range.location)
//設置表情的大小,添加屬性
//beforeAttributeString.addAttributes([NSFontAttributeName : MytextView.font!], range: NSMakeRange(0, beforeAttributeString.length))
MytextView.attributedText = beforeAttributeString
//設置光標的位置,放到的位置+1
MytextView.selectedRange = NSMakeRange(range.location+1, 0)
}
else if let emoji = emotion.emoji
{
let boforeAttrbuteString = NSMutableAttributedString(attributedString: MytextView.attributedText)
let nowString = NSAttributedString(string: emoji)
let range = MytextView.selectedRange
boforeAttrbuteString.insertAttributedString(nowString, atIndex: range.location)
MytextView.attributedText = boforeAttrbuteString
//賦值之後設置
MytextView.selectedRange = NSMakeRange(range.location + 2,0 )
}
textViewDidChange(MytextView)
}
textView表情代碼相關
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.