我在获取NSTextAttachment图像以在OS X应用程序的NSTextView中工作时遇到问题.
NSTextAttachment的图像根本不显示.但是,它似乎仍然设置正确.因为复制NSTextView的内容并将其粘贴回例如TextEdit.app,粘贴的文本正确包含图像.
这是一个重现这个问题的最小游乐场:
import Cocoa let img = NSImage(named: "Checked") let textView = NSTextView(frame: NSMakeRect(0,254,64)) let attrstr = NSMutableAttributedString(string: "Test") let attch = NSTextAttachment() attch.image = img attrstr.appendAttributedString(NSAttributedString(attachment: attch)) textView.textStorage!.setAttributedString(attrstr) textView
预期产量:
对于iOS,所以使用UIKit而不是Cocoa,它可以很好地工作:
import UIKit let img = UIImage(named: "Checked") let textView = UITextView(frame: CGRectMake(0.0,0.0,200.0,44.0)) let attrstr = NSMutableAttributedString(string: "Test") let attch = NSTextAttachment() attch.image = img attrstr.appendAttributedString(NSAttributedString(attachment: attch)) textView.attributedText = attrstr textView
我正在使用XCode 7.两个游乐场都可以下载here.
任何想法都非常欢迎,提前致谢!
解决方法
var thumbnailImage: NSImage? = // some image var attachmentCell: NSTextAttachmentCell = NSTextAttachmentCell.initimageCell(thumbnailImage!) var attachment: NSTextAttachment = NSTextAttachment() attachment.attachmentCell = attachmentCell var attrString: NSAttributedString = NSAttributedString.attributedStringWithAttachment(attachment) self.textView.textStorage().appendAttributedString(attrString)