我想更新drawInRect: withAttributes:
中通过NSView
添加的文字。但是,似乎只能通过更改其属性来更新文本。
class MyView: NSView {
var str: NSString!
override func drawRect(dirtyRect: NSRect) {
super.drawRect(dirtyRect)
str = "Sample Text"
str.drawInRect(NSMakeRect(0, 0, 60, 40), withAttributes: nil)
}
}
上面的代码为视图创建了文本Sample Text
,我在故事板上添加了该文本。
但是,当我尝试通过更改其属性或再次调用drawInRect: withAttributes:
来更新文本时,文本根本没有更新。这是代码:
@IBAction func callButton(sender: AnyObject) {
myView.str = "Test"
myView.str.drawInRect(CGRectMake(0, 0, 60, 40), withAttributes: nil)
}
为什么文字没有更新?另外,如何更新文本?
答案 0 :(得分:1)
请勿覆盖str
中的drawRect
。而是在初始化时为属性设置默认字符串,并在更新setNeedsDisplay
属性时使用str
将视图标记为脏。