【发布时间】: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