@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表情代码相关
最新推荐文章于 2017-01-04 14:51:07 发布