如何在绘制后更改NSTextField的值?

时间:2017-07-18 21:40:42

标签: swift cocoa button drawing textfield

我有一个文本字段,绘制在NSButton中。设置正常。按钮,文本字段和值显示:

enter image description here

以下是我如何设置文本字段的代码:

class myButton: NSButton {

    var textfield = NSTextField()

    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        drawtextfield(text: "hello")
    }

    func drawtextfield(text: String) {

        let dirtyRect = NSRect()
        textfield.frame = CGRect(x: self.frame.origin.x, y: self.frame.origin.y, width: self.frame.width, height: self.frame.height)
        textfield.stringValue = text
        textfield.draw(dirtyRect)
    }
}

现在如果我打电话:

myButton.init().drawtextfield(text: "hello2")

我收到错误:CGContextSetCMYKStrokeColor: invalid context 0x0 怎么可能,文本字段是由应用程序的开头绘制的,当函数drawtextfield()被第二次调用时,我收到错误?建议将不胜感激。

0 个答案:

没有答案