当DRAWBackground = false时,不显示NSTextView子视图

时间:2015-07-09 12:34:52

标签: macos swift appkit yosemite

  1. 添加NSTextView(手动或通过“界面”构建器)。
  2. 设置drawBackground = false
  3. 直接将子视图添加到NSTextView
  4. 子视图将不可见。

    但是,如果我将另一个子视图添加到与NSScrollView相同的级别,则会出现第一个子视图。

    以下是XCode的示例项目:https://www.dropbox.com/s/inz30bq9xzdw0g5/TestTextSubviews.zip?dl=0

    在源代码中,如果您取消注释这一行:

    //让bg2 = BgView(框架:NSRect(x:105,y:105,宽度:100,高度:100)) // window.contentView.addSubview(bg2)

    然后第一个子视图也会出现。

1 个答案:

答案 0 :(得分:0)

我不知道具体原因,但怀疑它是一个视图层次结构问题。我从cocoa app模板创建了一个新项目,添加了nstextview然后添加了1个然后是2个子视图 - 似乎按预期工作。使用窗口控制器和视图控制器设置cocoa app模板,这样就可以正确地排除视图层次结构的奇怪现象,直接将视图添加到nib中的窗口是不明显的 - 这是示例项目 - {{3} }

(注意:我目前正在使用Xcode 7测试版,但我认为它不应该有任何区别)