如何以编程方式向NSWindow(或NSView)添加视图?

马丁·维尔切夫斯基(Martin Velchevski)

我的ViewController中有这段代码。我以编程方式添加的视图却无处可见。

override func viewDidLoad() {
    super.viewDidLoad()

    let f: NSRect = NSMakeRect(0, 0, 200, 200)
    let v: NSView = NSView(frame: f)
    v.layer?.backgroundColor = NSColor.yellowColor().CGColor
    self.view.addSubview(v)

}

另外,我尝试创建一个自定义NSWindowController并将其设置为界面构建器情节提要中主窗口的自定义类。那里我有以下代码:

override func windowDidLoad() {
    super.windowDidLoad()

    let f: NSRect = NSMakeRect(0, 0, 200, 200)
    let v: NSView = NSView(frame: f)
    v.layer?.backgroundColor = NSColor.yellowColor().CGColor
    self.window?.contentView?.addSubview(v)

}

这也不起作用:/

我什至尝试将设置v.wantsLayer = true作为我在网上发现的答案之一,但是从一开始就觉得很奇怪,当然什么也没做。

我在这里做错了什么?

马丁·维尔切夫斯基(Martin Velchevski)

当我用尽所有可能的场景时,回答我自己的问题,当然罪魁祸首最终成了wantsLayer

最初我做了:

override func windowDidLoad() {
    super.windowDidLoad()

    let f: NSRect = NSMakeRect(32, 32, 200, 200)
    let v: NSView = NSView(frame: f)
    v.layer?.backgroundColor = NSColor.greenColor().CGColor
    v.wantsLayer = true
    self.window?.contentView?.addSubview(v)

    if let views = self.window?.contentView?.subviews {
        for v in views {
            print(v.frame)
        }
    }
}

我可以看到该视图已添加到contentView中,但是它是不可见的。在意识到自己的错误之前,我做了很多事情:

v.wantsLayer = true需要声明(当然)是其中I指定的层本身的backgroundColor线之上。

所以是的...这现在可以工作:

override func windowDidLoad() {
    super.windowDidLoad()
    let f: NSRect = NSMakeRect(32, 32, 200, 200)
    let v: NSView = NSView(frame: f)
    v.wantsLayer = true
    v.layer?.backgroundColor = NSColor.greenColor().CGColor
    self.window?.contentView?.addSubview(v)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何以编程方式将弹簧和支柱添加到NSView的子视图中

来自分类Dev

如何以编程方式向视图添加9个偶数图像|迅速

来自分类Dev

Android:如何以编程方式在视图内部添加视图?

来自分类Dev

如何以编程方式向片段添加按钮

来自分类Dev

如何以编程方式向位图图像添加文本?WPF

来自分类Dev

如何以编程方式向Wagtail StreamField添加内容?

来自分类Dev

如何以编程方式向Silverstripe添加新页面?

来自分类Dev

如何以编程方式向简单的表格布局添加边框

来自分类Dev

对如何以编程方式向jtable添加列感到困惑

来自分类Dev

如何以编程方式向重力形式添加条目

来自分类Dev

如何以编程方式向窗口文件的图标添加指示

来自分类Dev

如何以编程方式/从脚本向Xcode项目添加文件?

来自分类Dev

如何以编程方式向XML文件部分添加行?

来自分类Dev

如何以编程方式向PDF添加背景?

来自分类Dev

如何以编程方式向表中添加表行?

来自分类Dev

如何以编程方式向重力形式添加条目

来自分类Dev

对如何以编程方式向jtable添加列感到困惑

来自分类Dev

如何以编程方式关闭NSView子视图的可可自动布局?

来自分类Dev

如何以编程方式关闭NSView子视图的可可自动布局?

来自分类Dev

如何以编程方式将NSWindow设置为全屏?

来自分类Dev

以编程方式向视图添加约束

来自分类Dev

如何以编程方式更改视图大小?

来自分类Dev

如何以编程方式创建滚动视图

来自分类Dev

如何以编程方式设置视图的高度?

来自分类Dev

如何以编程方式扩展/旋转视图?

来自分类Dev

如何以编程方式将视图添加到合金中的滚动视图

来自分类Dev

如何以编程方式添加序列?

来自分类Dev

如何以编程方式添加NSLayoutConstraints

来自分类Dev

如何以编程方式添加GestureOverlayView?

Related 相关文章

  1. 1

    我如何以编程方式将弹簧和支柱添加到NSView的子视图中

  2. 2

    如何以编程方式向视图添加9个偶数图像|迅速

  3. 3

    Android:如何以编程方式在视图内部添加视图?

  4. 4

    如何以编程方式向片段添加按钮

  5. 5

    如何以编程方式向位图图像添加文本?WPF

  6. 6

    如何以编程方式向Wagtail StreamField添加内容?

  7. 7

    如何以编程方式向Silverstripe添加新页面?

  8. 8

    如何以编程方式向简单的表格布局添加边框

  9. 9

    对如何以编程方式向jtable添加列感到困惑

  10. 10

    如何以编程方式向重力形式添加条目

  11. 11

    如何以编程方式向窗口文件的图标添加指示

  12. 12

    如何以编程方式/从脚本向Xcode项目添加文件?

  13. 13

    如何以编程方式向XML文件部分添加行?

  14. 14

    如何以编程方式向PDF添加背景?

  15. 15

    如何以编程方式向表中添加表行?

  16. 16

    如何以编程方式向重力形式添加条目

  17. 17

    对如何以编程方式向jtable添加列感到困惑

  18. 18

    如何以编程方式关闭NSView子视图的可可自动布局?

  19. 19

    如何以编程方式关闭NSView子视图的可可自动布局?

  20. 20

    如何以编程方式将NSWindow设置为全屏?

  21. 21

    以编程方式向视图添加约束

  22. 22

    如何以编程方式更改视图大小?

  23. 23

    如何以编程方式创建滚动视图

  24. 24

    如何以编程方式设置视图的高度?

  25. 25

    如何以编程方式扩展/旋转视图?

  26. 26

    如何以编程方式将视图添加到合金中的滚动视图

  27. 27

    如何以编程方式添加序列?

  28. 28

    如何以编程方式添加NSLayoutConstraints

  29. 29

    如何以编程方式添加GestureOverlayView?

热门标签

归档