Cocoa NSAttributedString粘贴更改字体

时间:2016-01-21 04:39:30

标签: cocoa copy-paste rtf nsattributedstring nsmutableattributedstring

我有一个var tableView:UITableView? var collectionView:UICollectionView? var bounds = CGRectMake(0, 0, 320, 480) // frame of tableView func createTableView() -> UITableView{ if(tableView == nil){ tableView = UITableView(frame: bounds, style: .Plain) } tableView?.delegate = self tableView?.dataSource = self return tableView; } func createCollectionView() -> UICollectionView{ if(collectionView == nil){ collectionView = UICollectionView(frame: bounds, collectionViewLayout: CustomFlowLayout) } collectionView?.delegate = self collectionView?.dataSource = self return collectionView } func initializeViews{ createTableView() createCollectionView() self.view.addSubView(tableView); self.view.addSubView(collectionView); } func showTableView{ collectionView?.hidden = true; tableView?.hidden = false; } func showCollectionView{ tableView?.hidden = true; collectionView?.hidden = false; } ,其中包含NSAttributedString和一些文字。我已将其复制到粘贴板。我还确保该字符串没有字体属性。当我粘贴它时,它总是将字体更改为Helvetica。有什么方法可以防止这种行为吗?

NSAttachment

此时我将数据复制到剪贴板

let wrapper = NSFileWrapper()
wrapper.preferredFilename = "image"

let attachment = NSTextAttachment(fileWrapper: wrapper)
if let im = NSImage(data: data) { attachment.image = im }

let image = NSAttributedString(attachment: attachment)
let str = NSMutableAttributedString(attributedString: image)
str.appendAttributedString(NSAttributedString(string: "hello world"))

let range = NSMakeRange(0, str.length)

//remove font attributes
str.removeAttribute(NSFontAttributeName, range: range)
str.removeAttribute(NSFontSizeAttribute, range: range)

Swift.print(str.attributes) //prints an empty array

0 个答案:

没有答案