NSTextField无法在自定义NSView中正确绘制

时间:2016-02-20 22:48:59

标签: swift macos drawing nsview nstextfield

我有一个自定义的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已损坏):

corrupted drawing

当我拖动窗口调整大小时,大部分时间都会正确绘制:

correct drawing

我不知道我哪里出错了。

0 个答案:

没有答案