我想在NSView畫布中呈現文本。我需要寫出三行文字,忽略其他內容。使用提供的矩形String.draw(in:withAttributes)似乎完美的做到這一點。我的代碼如下所示:在NSView中寫入
func renderText(_ string:String, x:Double, y:Double, numberOfLines: Int, withColor color:Color) -> Double {
let font = NSFont.boldSystemFont(ofSize: 11)
let lineHeight = Double(font.ascender + abs(font.descender) + font.leading)
let textHeight = lineHeight * Double(numberOfLines) + font.leading // three lines
let textRect = NSRect(x: x, y: y, width: 190, height: textHeight)
string.draw(in: textRect, withAttributes: [NSFontAttributeName: font, NSForegroundColorAttributeName: color])
return textHeight
}
renderText("Lorem ipsum...", x: 100, y: 100, numberOfLines: 3, withColor: NSColor.white)
沒有調整,我只得到兩行文字顯示效果:
我失去了一些東西?
這是奇怪的是如何在iOS版本的應用程序,相同的代碼(與UIFont)似乎工作正常,顯示三行。 –