2016-02-25 41 views
0

我想定制myButton,以便在mouseDown发生时更改背景颜色,并在调用mouseUp时返回默认颜色。自定义NSButton。点击时如何改变颜色

override func mouseDown(theEvent: NSEvent) { 
    super.mouseDown(theEvent) 
    self.bgColor = NSColor(hex: 0x4A7AA1) 
    self.textColor = NSColor.darkGrayColor() 
    self.needsDisplay = true 
    self.mouseUp(theEvent) 
} 

override func mouseUp(theEvent: NSEvent) { 
    self.textColor = NSColor.whiteColor() 
    self.bgColor = NSColor(hex: 0x6AAFE6, alpha: 0.95) 
} 

我试着运行这段代码,但鼠标关闭时所有视图都没有重绘。我如何在myButton上执行此功能:NSButton类?

回答

0

您只需在特定视图中覆盖drawRect()即可。 在drawRect中,您可以检查按钮是否突出显示。

func drawRect(dirtyRect: NSRect) { 
    super.drawRect(dirtyRect) 
    if self.highlighted { 
     // Do custom drawing. 
    } 
} 

您不需要检测mouseDown就行了。 drawRect将自动调用