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

dmi*_*aev 5 macos appkit swift osx-yosemite

  1. 添加NSTextView(手动或通过"界面"构建器).
  2. 设置drawBackground = false
  3. 将子视图直接添加到NSTextView

子视图将不可见.

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

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

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

//让bg2 = BgView(frame:NSRect(x:105,y:105,width:100,height:100))// window.contentView.addSubview(bg2)

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

Dav*_*rts 0

我不知道确切的原因,但怀疑这是视图层次结构问题。我从 cocoa 应用程序模板创建了一个新项目,添加了 nstextview 然后添加了 1 个然后 2 个子视图 - 似乎按预期工作。可可应用程序模板设置了窗口控制器和视图控制器,因此也许这可以正确地解决视图层次结构的奇怪问题,而直接将视图添加到笔尖中的窗口中并不明显 - 这是示例项目 - https://www. dropbox.com/s/sef54sc2pgdws7f/NSTextViewAddSubviews.zip?dl=0

(注意:我目前使用的是 Xcode 7 beta,但我认为这不会有任何区别)