我只是想在 NSTextView 周围绘制一点黑色边框,但遇到了麻烦。下面的代码是 NSTextView 的子类:
override init(frame: NSRect, textContainer: NSTextContainer?)
{
super.init(frame:frame, textContainer: textContainer)
self.wantsLayer = true
self.layer?.borderColor = NSColor.black.cgColor
self.layer?.borderWidth = 1.0
self.layer?.cornerRadius = 0.0
}
self.wantsLayer = true
代码导致 NSTextView
消失。还有其他方法可以实现这一点吗?
编辑:这就是我将 NSTextView
又名 PageView
添加到其父 view
的方式:
let textContainer = NSTextContainer()
textContainer.widthTracksTextView = true
textContainer.heightTracksTextView = true
let pageView = PageView(frame: CGRect(x: 0, y: pagesViewOriginY, width: self.paperSize.width, height: self.paperSize.height), textContainer: textContainer)
self.addSubview(pageView);
self.layoutManager.addTextContainer(textContainer);
最佳答案
另一种选择是为 TextView 创建一个单独的类并使用draw()来提供框架:
class TextView: NSTextView {
override func draw(_ rect: NSRect) {
super.draw(rect)
let border:NSBezierPath = NSBezierPath(rect: bounds)
let borderColor = NSColor.black
borderColor.set()
border.lineWidth = 2.0
border.stroke()
}
}
关于swift - 如何在 NSTextView 周围绘制边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61003786/