如何将带有 xib 的自定义 NSView 添加到 NSViewController

时间:2021-01-26 14:11:57

标签: cocoa swift5 nsview nscollectionview

我想用 xib 创建通用的自定义 NSView,我想在任何需要的地方使用它。现在写我想把它添加到 NSViewController 视图中。我需要的功能是我可以将故事板中的这个自定义 NSView 类分配给任何视图。

我需要这样的东西:

  1. NSViewController
  2. 查看
  3. Subview(我将通过故事板将此视图标记为自定义 NSView)

这是我的代码:

class TestCustomView: NSView {

@IBOutlet var contentView: NSView!

override func draw(_ dirtyRect: NSRect) {
    super.draw(dirtyRect)
}

override init(frame frameRect: NSRect) {
    super.init(frame: frameRect)
    
    Bundle.main.loadNibNamed("TestCustomView", owner: self, topLevelObjects: nil)
    let contentFrame = NSMakeRect(0, 0, frame.size.width, frame.size.height)
    self.contentView.frame = contentFrame
    self.addSubview(contentView)
    
}

required init?(coder: NSCoder) {
    super.init(coder: coder)
}   

}

使用此代码,我可以添加自定义视图,但是当我在此自定义视图中添加子视图时,它不可见。其次要添加这个视图,我需要像这样以编程方式添加它:

let testCustomView = TestCustomView(frame: CGRect(x: 0, y: 0, width: 548, height: 400))
     testCustomView.translatesAutoresizingMaskIntoConstraints = false
     mysubview.addSubview(testCustomView)

所以基本上我在这里缺少的东西,我不想要这种程序化的方法。我只想通过故事板设置它。看了很多文章都没找到满意的答案。

0 个答案:

没有答案