我想在我的NSVisualEffectView中添加一个NSTextView,但是当我添加它时,文本在NSVisualEffectView下面,那么如何在文本下面添加NSVisualEffectView呢?
我的OS代码:
class myTextView: NSTextView {
override func awakeFromNib() {
let visualEffectView = NSVisualEffectView(frame: NSMakeRect(20, 20, 30, 18))
visualEffectView.material = NSVisualEffectMaterial.Dark
visualEffectView.blendingMode = NSVisualEffectBlendingMode.BehindWindow
self.addSubview(visualEffectView)
}
}发布于 2015-08-16 01:19:42
也许这能帮到你:
class MyTextView: NSTextView {
lazy var visualEffectView: NSVisualEffectView = {
let visualEffectView = NSVisualEffectView()
visualEffectView.material = NSVisualEffectMaterial.Dark
visualEffectView.blendingMode = NSVisualEffectBlendingMode.BehindWindow
return visualEffectView
}()
override func awakeFromNib() {
super.awakeFromNib()
self.drawsBackground = false
}
override func viewDidMoveToSuperview() {
super.viewDidMoveToSuperview()
if let containerView = self.superview?.superview?.superview {
containerView.addSubview(self.visualEffectView, positioned: .Below, relativeTo: self)
}
}
override func resizeSubviewsWithOldSize(oldSize: NSSize) {
super.resizeSubviewsWithOldSize(oldSize)
if let superview = self.superview?.superview {
self.visualEffectView.frame = superview.frame
}
}
}它是滚动视图和剪辑视图中的文本视图,因此您必须获得它的superview。
发布于 2015-08-16 01:00:40
self.sendSubviewToBack(visualEffectView)但是视觉效果需要应用于父容器,而不是文本视图本身,所以如果我正确地理解了您的代码,您需要将整个过程移到父视图的任何位置。
https://stackoverflow.com/questions/32030627
复制相似问题