【问题标题】:Add custom NSViewController with Nib to view使用 Nib 添加自定义 NSViewController 以查看
【发布时间】:2015-08-20 09:20:58
【问题描述】:

背景信息:我有一个带有自定义 NSView 单元格 (PreviewCell : NSView) 的 NSTableView,并且想在表格外添加这样一个 PreviewCell(带有自定义笔尖)作为子视图。

项目设置:

AppDelegate  [displays MasterviewController]
MasterViewController : NSViewController
MasterViewController.xib  [contains table with Preview.xib rows]

Preview : NSViewController
Preview.xib  [contains PreviewCell]
PreviewCell : NSView

表格显示正确。但是,我无法将带有 Nib 的 Preview 控制器添加到 MasterViewController。

// in viewDidLoad()
var pinned = Preview(nibName: "Preview", bundle: nil)
self.view.addSubview(pinned!.view)
pinned!.view.frame = CGRect(x: 0, y: 100, width: 600.0, height: 120.0)

视图根本不可见。如果我改为将它添加到窗口的 contentView(在AppDelegate 中),它会完美运行:

// in applicationDidFinishLaunching()
var pinned = Preview(nibName: "Preview", bundle: nil)
self.window.contentView.addSubview(pinned!.view)
pinned!.view.frame = CGRect(x: 0, y: 0, width: 600.0, height: 120.0)

在MasterViewController 中仅添加PreviewCell(因此不使用笔尖)也可以:

var pinned = PreviewCell(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.table.rowHeight))
self.view.addSubview(pinned)

我在这里做错了什么?

【问题讨论】:

    标签: swift nsview nsviewcontroller


    【解决方案1】:

    显然,在子视图上设置setAutoresizingMask 是个坏主意。 删除自动调整大小后,子视图(在我的情况下为 Preview)正确显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多