小编big*_*row的帖子

Swift:如何将AVPlayerLayer添加到NSView的后层

我有一个NSView像这样的in接口构建器:

设定

我在视图(videoView)内部有按钮和标签,用于控制视频的播放。当我AVPlayerLayer像这样向视图添加(myPlayerLayer)时:将

self.videoView.layer?.addSublayer(myPlayerLayer)

其添加AVPlayerLayer为顶层,从而覆盖按钮。如何将播放器图层添加到背面,使其不覆盖其他任何内容?

非常感谢。

cocoa layer nsview avplayerlayer swift

2
推荐指数
1
解决办法
1116
查看次数

在不提供 NSTextContainer 的情况下初始化 NSTextView 的子类

我有一个子类NSTextView,在这个子类的初始化器中,我想调用:

super.init(frame: NSMakeRect(...))
Run Code Online (Sandbox Code Playgroud)

这就是我在以NSTextView编程方式初始化时总是做的事情。我简单地写:

let textView = NSTextView(frame: NSMakeRect(0,0,10,10))
Run Code Online (Sandbox Code Playgroud)

但是,当我在子类 ( super.init(frame: (...))) 中执行此操作时,编译器会抛出错误。它不会让我使用,init(frame:)因为它init(frame:)是 的便利初始化程序NSTextView,我必须调用“超类的指定初始化程序”。

查了文档,发现是的指定构造器NSTextViewinit(frame: textContainer:)但是我不想处理NSTextContainers. 为什么我必须从对象的子类调用指定的初始化程序,但如果对象没有被子类化,我可以调用便利初始化程序?每当我通常初始化 anNSTextView我不必提供 an NSTextContainer,但是当我将 an 初始化NSTextView为子类的超类时,我会这样做。为什么是这样?

另外,有没有办法NSTextView用一种“默认”文本容器来初始化?不管指定的初始值设定项如何,我在这里要做的就是创建一个NSTextView不用担心NSTextContainers.

initialization designated-initializer convenience-methods swift

2
推荐指数
1
解决办法
992
查看次数