swift – 具有圆角和背景颜色的NSButton
Posted sundaymac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift – 具有圆角和背景颜色的NSButton相关的知识,希望对你有一定的参考价值。
http://www.voidcn.com/article/p-srkqadwc-btx.html
我想要一个简单的按钮(带圆角的按钮),并添加背景.
我已经尝试过两件事情:
1 – 使用圆形按钮图像:这是很好的,直到我需要缩放按钮,这导致圆形部分看起来丑陋.
2 – 扩展按钮并添加颜色 – 但是当我点击按钮时,我有麻烦 – 我希望“推”状态与“常规”状态处于相同的颜色,但情况并非如此.
这是我用来扩展按钮的代码:
override func drawRect(dirtyRect: NSRect)
{
if let bgColor = bgColor {
self.layer?.cornerRadius = 4
self.layer?.masksToBounds = true
self.layer?.backgroundColor = bgColor.CGColor
bgColor.setFill()
NSRectFill(dirtyRect)
}
super.drawRect(dirtyRect)
}
无论如何,方法1和2都不工作,那么我该如何实现呢?
只是一个简单的按钮.. ??
编辑:
我在问OSX
覆盖NSButtonCell的drawWithFrame方法:
func drawWithFrame(cellFrame: NSRect, inView controlView: NSView) {
var border = NSBezierPath(roundedRect: NSInsetRect(cellFrame, 0.5, 0.5), xRadius: 3, yRadius: 3)
NSColor.greenColor().set()
border.fill()
var style = NSParagraphStyle.defaultParagraphStyle()
style.alignment = NSCenterTextAlignment
var attr = [NSParagraphStyleAttributeName : style, NSForegroundColorAttributeName : NSColor.whiteColor()]
self.title.drawInRect(cellFrame, withAttributes: attr)
}
以上是关于swift – 具有圆角和背景颜色的NSButton的主要内容,如果未能解决你的问题,请参考以下文章
当背景颜色与边框背景颜色不同时,为 WPF TextBlock 设置左上角和右上角圆角不起作用