Swift Mac OSX NSButton 标题颜色

问题描述 投票:0回答:5

我想知道如何在 swift 中将标题颜色更改为 NSButton,我在 Objective-C 中看到了很多示例,但我认为 swift 中的实现是不同的,任何人都可以给我提供一个示例吗?

macos swift xcode6 nsbutton
5个回答
22
投票

viewDidLoad
或其他地方尝试一下。

在 Swift 3 中:

    let pstyle = NSMutableParagraphStyle()
    pstyle.alignment = .center

    button.attributedTitle = NSAttributedString(string: "Title", attributes: [ NSForegroundColorAttributeName : NSColor.red, NSParagraphStyleAttributeName : pstyle ])

11
投票

斯威夫特4

我已将其添加为附加答案,因为它仅更改请求的属性,而不会覆盖或添加其他属性。

if let mutableAttributedTitle = button.attributedTitle.mutableCopy() as? NSMutableAttributedString {
    mutableAttributedTitle.addAttribute(.foregroundColor, value: NSColor.white, range: NSRange(location: 0, length: mutableAttributedTitle.length))
    button.attributedTitle = mutableAttributedTitle
}

1
投票

在 Swift4 中

button.attributedTitle = NSMutableAttributedString(string: "Hello World", attributes: [NSAttributedStringKey.foregroundColor: NSColor.white, NSAttributedStringKey.paragraphStyle: style, NSAttributedStringKey.font: NSFont.systemFont(ofSize: 18)])

0
投票

斯威夫特5

button.contentTintColor = NSColor.white

0
投票
@IBOutlet weak var resendOTPButton: NSButton!

var buttonTextColorRef : NSColor = DisplayHexColorCode.whiteColor.asColor
self.resendOTPButton.setButtonTextColor(textColor: buttonTextColorRef)


func setButtonTextColor(textColor color: NSColor) {
    if #available(macOS 10.14, *) {
        self.contentTintColor = color
    } else {
        let newAttributedTitle = NSMutableAttributedString(attributedString: attributedTitle)
        let range = NSRange(location: 0, length: attributedTitle.length)
        newAttributedTitle.addAttributes([
            .foregroundColor: color,
        ], range: range)
        attributedTitle = newAttributedTitle
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.