我在这里和其他博客中经历了很多线程,但却无法解决这个问题。我在窗口的内容视图中添加了一个子视图。这是故事板 -
我拖出了customView的插座来查看控制器,这里是视图控制器的代码 -
import Cocoa
import QuartzCore
class ViewController: NSViewController {
@IBOutlet weak var customView: NSView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.wantsLayer = true
self.customView.wantsLayer = true
self.customView.layer?.backgroundColor = NSColor.redColor().CGColor
self.customView.layer?.cornerRadius = 5.0
self.customView.layer?.shadowOpacity = 1.0
self.customView.layer?.shadowColor = NSColor.blackColor().CGColor
self.customView.layer?.shadowOffset = NSMakeSize(0, -3)
self.customView.layer?.shadowRadius = 20
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我无法解决看似微不足道的问题。我错过了什么?谢谢你的帮助。
答案 0 :(得分:15)
如果我添加以下行,则可以解决问题 -
self.customView.shadow = NSShadow()
最终代码是 -
import Cocoa
import QuartzCore
class ViewController: NSViewController {
@IBOutlet weak var customView: NSView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.wantsLayer = true
self.view.superview?.wantsLayer = true
self.customView.wantsLayer = true
self.customView.shadow = NSShadow()
self.customView.layer?.backgroundColor = NSColor.redColor().CGColor
self.customView.layer?.cornerRadius = 5.0
self.customView.layer?.shadowOpacity = 1.0
self.customView.layer?.shadowColor = NSColor.greenColor().CGColor
self.customView.layer?.shadowOffset = NSMakeSize(0, 0)
self.customView.layer?.shadowRadius = 20
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我无法确定问题可能是这里有人会指出它。