2017-03-18 23 views
0

我試圖用打印機打印NSTextView的純文本內容,它具有黑色背景和白色文本(無圖像,只有未格式化的文本)。如何使用打印機打印沒有背景和文本顏色屬性的NSTextView文本內容?

我使用這個代碼:

mainTextField.print(Any?.self) 

不幸的是,打印(預覽)看起來像黑與白的文字就可以了,除此之外,我會用墨盒的墨每個紙,它是即使對環境也不好。有沒有辦法打印沒有背景和文字顏色屬性的文字?

+0

你爲什麼不使用NSPrintInfo? –

+0

嗨El Tomato,因爲我正在學習使用Swift進行編程,而NSPrintInfo在我看來似乎是一個過於高級的話題,因爲我的經驗不足 – Cue

回答

2

當您想要打印時,只需創建一個新的NSTextView。

@IBAction func printButtonClicked(_ sender: Any) { 
    let tv = NSTextView(frame: textView.frame) 
    tv.string = textView.string 
    tv.print(tv) 
} 

---更新:有豐富的文本.---

@IBAction func printButtonClicked(_ sender: Any) { 
    let tv = NSTextView(frame: textView.frame) 
    if textView.isRichText { 
     let data = textView.rtf(from: NSMakeRange(0, (textView.string! as NSString).length)) 
     tv.replaceCharacters(in: NSMakeRange(0, 0), withRTF: data!) 
     tv.textColor = .black 
    } 
    else { 
     tv.string = textView.string 
    } 

    tv.print(nil) 
} 
+0

謝謝Owen Zhao – Cue

+0

@Tel歡迎您。 –

+0

使用Swift 4,我需要將'tv.print(tv)'改爲'tv.printView(tv)' – Cue