Swift 绘制后如何更改NSTextField的值?
我有一个文本字段,画在一个按钮里面。设置正在运行。按钮、文本字段和值如下所示: 下面是我如何设置文本字段的代码:Swift 绘制后如何更改NSTextField的值?,swift,cocoa,button,drawing,textfield,Swift,Cocoa,Button,Drawing,Textfield,我有一个文本字段,画在一个按钮里面。设置正在运行。按钮、文本字段和值如下所示: 下面是我如何设置文本字段的代码: class myButton: NSButton { var textfield = NSTextField() override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) drawtextfield(text: "hello") } func
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:无效的上下文0x0
怎么可能在应用程序启动时绘制文本字段,当函数
drawtextfield()
第二次被调用时,我会出错?非常感谢您的建议。当您可以为按钮设置标题时,为什么还要这样做?您肯定有设计问题。@ElTomato,因为我想用颜色填充整个按钮,使灰色边框消失。请参阅我的最后一个更新。谢谢你不要这样做<代码>绘制应该绘制,而不是其他。当您可以为按钮设置标题时,为什么还要这样做?您肯定有设计问题。@ElTomato,因为我想用颜色填充整个按钮,使灰色边框消失。请参阅我的最后一个更新。谢谢你不要这样做<代码>绘制应该绘制,没有其他内容。