我有一个自定义的NSView,我以编程方式将三个NSTextField放入视图中(基本上是图形的轴标签):
var axesTextFields : Array<NSTextField> = [NSTextField(),NSTextField(),NSTextField()]
func addTextFields() {
axesTextFields[0].stringValue = "x"
axesTextFields[1].stringValue = "y"
axesTextFields[2].stringValue = "z"
for tf in axesTextFields {
tf.textColor = NSColor.blackColor()
tf.bezeled = false
tf.editable = false
tf.drawsBackground = false
self.addSubview(tf)
}
}
我在drawRect()函数中更新NSTextField的位置:
override func drawRect(fullRect: NSRect)
{
... // drawing lines for the graph
axesTextFields[0].frame = NSMakeRect(0,axes_location * 3 - 10,20,20)
axesTextFields[1].frame = NSMakeRect(0,axes_location * 2 - 10,20,20)
axesTextFields[2].frame = NSMakeRect(0,axes_location - 10,20,20)
}
视图有时会正确绘制,但很多时候它看起来像这样(左边的NSTextFields已损坏):
当我拖动窗口调整大小时,大部分时间都会正确绘制:
我不知道我哪里出错了。