gpt4 book ai didi

swift - 是否可以制作一个圆形的 NSButton?

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:58 26 4
gpt4 key购买 nike

我正在尝试创建自定义形状 NSButton。特别是我正在尝试使用自定义图像制作一个圆形按钮。我找到了 a tutorial关于创建自定义 UIButton 并尝试使其适应 NSButton。但是有一个很大的问题。 clipsToBounds 似乎仅限 iOS(

这是我的代码:

import Cocoa

class ViewController: NSViewController {

@IBOutlet weak var mainButton: NSButton!
var size = 32

override func viewDidLoad() {
super.viewDidLoad()
configureButton()
// Do any additional setup after loading the view.
}
func configureButton()
{
mainButton.wantsLayer = true
mainButton.layerContentsRedrawPolicy = NSViewLayerContentsRedrawPolicy.OnSetNeedsDisplay
mainButton.layer?.cornerRadius = 0.5 * mainButton.bounds.size.width
mainButton.layer?.borderColor = NSColor(red:0.0/255.0, green:122.0/255.0, blue:255.0/255.0, alpha:1).CGColor as CGColorRef
mainButton.layer?.borderWidth = 2.0
}

override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}


}

我做错了什么?我怎样才能制作一个圆形的 NSButton?您能否就替换 clipsToBounds 提出任何建议?

因为这是我到目前为止能够得到的:

enter image description here

最佳答案

NSButton是NSView的子类,所以NSView中的所有方法,比如drawRect(_:),在NSButton中也都有。

因此,创建一个新的 Button.swift,您可以在其中绘制自定义布局

import Cocoa

class Button: NSButton {

override func drawRect(dirtyRect: NSRect) {
super.drawRect(dirtyRect)

// Drawing code here.
let path = NSBezierPath(ovalIn: dirtyRect)
NSColor.green.setFill()
path.fill()
}

}

enter image description here

很棒的教程 Here .它是 iOS ,但非常相似!

关于swift - 是否可以制作一个圆形的 NSButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com