如何在cocoa NSView中设置背景图像

时间:2017-04-12 20:45:01

标签: swift image cocoa nsview

关于如何在iOS中为UIView设置背景图像的问题,我找到了几个答案。 但是我无法为macOS解决这个问题,特别是对于cocoa。 我试图设置像

这样的东西
let bgImage = NSImage(named: "streaks")
let pattern = NSColor(patternImage: bgImage!)
self.view.layer?.background = pattern as! CGColor // this will fail on runtime

3 个答案:

答案 0 :(得分:5)

UIView不同,NSView默认不支持图层,您必须启用它。

self.view.wantsLayer = true

然后创建图像并将其分配给图层的contents属性。

let image = NSImage(named: "streaks")
self.view.layer!.contents = image

答案 1 :(得分:1)

在Swift 4中

    self.view.wantsLayer = true
    let image = NSImage(named: NSImage.Name(rawValue: "streaks"))
    self.view.layer!.contents = image

答案 2 :(得分:0)

CustomImageView类:NSView {

open override func makeBackingLayer() -> CALayer {
    let backingLayer = super.makeBackingLayer()
    let image = NSImage(named: NSImage.Name(rawValue: "imageName"))
    backingLayer.contents = image
    return backingLayer
}

}