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)

}

相关文章

原文地址:https://www.cnblogs.com/sundaymac/p/10333478.html

时间: 2024-10-08 14:04:52

swift – 具有圆角和背景颜色的NSButton的相关文章

使用一个shape.xml文件,使用代码设置不同圆角背景颜色

给一个View设置一个圆角的背景颜色,我们一般会使用xml文件设置,使用<shape>节点设置,但是如果我们对一系列的View设置圆角北京,并且背景颜色色值不同,那么我们第一感觉想到的是创建多个xml文件,更改solid填充背景,其实我们可以使用一个xml文件就可以搞定,使用代码更改里面的填充颜色色值.废话不多话,看代码. 效果: 首先:创建activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro

swift 随机生成背景颜色

swift是一门新语言,相关的文档资料现在基本上还不是很完整.在尝试开发过程中,走了不少弯路.在这里记录一下自己的”路“,希望以后能少走弯路. 生成随机背景颜色使用的语法和C#或者JAVA基本一致. UIView.backgroundColor = UIColor 其中UIView是在设备上显示出来的从UIView继承到的对象,都会有这个属性. 其属性值是UIColor对象,而UIColor对象的构造函数有: init(white: CGFloat, alpha: CGFloat) init(h

css3中背景颜色渐变(转)

原文链接:http://caibaojian.com/css3-background-gradient.html 整理一下关于css3背景渐变的写法,至于是怎么来的,可以看下面渐变的详细解释. via在项目中,有很多地方都用到了背景线性渐变.如果在移动端还可以适当使用CSS3这个属性原文来自:http://caibaojian.com/css3-background-gradient.html css3:linear-gradient 比如:黑色渐变到白色,代码如下: .gradient{ ba

CSS实例:鼠标滑过超级链接文字时改变背景颜色

先讲简单的: 通过CSS可以设置超链接在不同时刻的颜色: <style> a:link {color: #FF0000} /* 未访问的链接 */ a:visited {color: #00FFFF} /* 已访问的链接 */ a:hover {color: #0000FF} /* 鼠标移动到链接上 */ a:active {color: #00FF00} /* 选定的链接 */ </style> <ul id="content"> <li&g

转 Android RadioButton设置选中时文字和背景颜色同时改变

主要应用在购物车,像淘宝的那样,点击以后弹出一个选择种类颜色这样的popuwindow以后,然后这个选择种类的地方要用到类似这个玩意儿. 搜了一下,效果和这个文章一致.转了. 原文地址:http://blog.csdn.net/liuwan1992/article/details/52688408 在使用 RadioButton 时,有时我们会想要达到选中时文字颜色和背景颜色同时改变的效果,这里还需要多进行几步操作. 首先,在布局文件中新建一组 RadioButton : [html] view

改变Android按钮背景颜色的高效方法

本文将介绍一种有效改变Android按钮颜色的方法. 按钮可以在状态改变时改变其颜色(例如按下,禁用,高亮显示).但是,这需要一一说明每个状态.这篇文章将提供你一个根据状态变化轻松改变按钮颜色的方法.如果你正在写自定义视图,那么不妨也来读一读,因为中间我会涉及到如何用自定义属性实现自定义视图的相关内容. 如何实现 Android提供了灵活的绘制选择机制,可根据视图状态转变视图外观.每个状态通过一个单独的部分而存在.例如:在正常.禁用.按下.高亮状态下的按钮有着不同的背景颜色.请看下面的代码示例:

Android ListView 列表项点击之后,保持背景颜色

项目中突然遇到这样的问题,一些消息类的界面,需要使用listview进行显示,正常的需求是刚开始进入消息显示界面的时候,列表项显示的都是全黑的,接着点击了某一个列表项之后,就要更换成白色,并且保持白色的显示,剩下的仍旧为黑色的,一开始就有点走进了死胡同,使用selector结合shape来定义选中.未选中.点击或者点击之后的背景显示,实例如下: </pre><p></p><pre name="code" class="html&quo

边框与背景颜色

此次随笔记录,讲述在同时有边框.背景颜色,且颜色都带透明度时相互的影响. 问题的思考源于想要用圆角边框和背景,制作图片轮播的圆形按钮. 由于按钮需要在图片上方显示,所以为了减轻对图片的遮挡,改善视觉效果,需要给边框和背景加上透明度,于是我是这么写的 1 li{ 2 width: 18px; 3 height: 18px; 4 margin-left: 10px; 5 display: inline-block; 6 border-radius: 50%; 7 border:2px solid;

改变cell的背景颜色

#define DARK_BACKGROUND  [UIColor colorWithRed:151.0/255.0 green:152.0/255.0 blue:155.0/255.0 alpha:1.0]; - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{    cell.backgroun