【问题标题】:Change image for NSButton with Swift code使用 Swift 代码更改 NSButton 的图像
【发布时间】:2016-03-19 20:16:45
【问题描述】:

我正在运行 Xcode 7.2.1,并且正在使用情节提要。我在情节提要中添加了一个“图像按钮”,并在属性检查器中设置了图像。然后我在我的代码中为按钮创建了一个出口和动作。

当我按下按钮时,我希望它的图像发生变化。在 Swift for iOS 中,我会这样做:

myButtonOutlet.setImage(UIImage(named: "Pressed-Button-Graphic@2x.png"), forState: UIControlState.Normal)

我在 OS X Swift 上试过这个:

myButtonOutlet.image(NSImage(named: "Pressed-Button-Graphic@2x.png"))

如何从 Swift (OS X) 更改按钮的图像?

【问题讨论】:

    标签: swift macos cocoa nsbutton


    【解决方案1】:

    您可以像这样在 NSImage 上设置image 属性:

    myButton.image = NSImage(named: "Pressed-Button_Graphic@2x.png")
    

    不像iOS它不需要使用setImage()方法

    【讨论】:

    • 我不断收到此解决方案的错误:“无法将 'String' 类型的值转换为预期的参数类型 'NSImage.Name”。我通过这样做解决了这个问题: myButton.image = NSImage(named: NSImage.Name("Filename")) iOS 使用这个:myButton.image = UIImage(named: "Filename.png")
    【解决方案2】:

    @brimstone 的方法在 ma​​cOS 上对我不起作用。我正在运行 Swift 4

    如果您将图像添加到 Assets.xcassets,那么这应该可以工作(没有文件扩展名!):

    myButton.image = NSImage(named: NSImage.Name("Pressed-Button_Graphic@2x"))
    

    如果您只是将图像导入主文件夹,请使用文件扩展名和文件名。

    附言iOS 使用:

    button.image = UIImage(named: "Picture.png")
    

    【讨论】:

    • 这可能是因为您可能没有使用 xcassets,只是纯图像。
    猜你喜欢
    • 1970-01-01
    • 2015-03-13
    • 2017-03-07
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多