【发布时间】:2017-12-09 19:44:01
【问题描述】:
我有一个自定义 NSView(称为 Header),我可以在运行时加载它。然而,这个自定义的 NSView (Header) 在运行时被嵌入到另一个更大的自定义 NSView 中,并且它在底部产生了额外的空间(我不想要这个额外的空间)。是否有另一种方法来加载不会出现此问题的 xib 文件?
这是我加载 xib 文件的方式:
import Cocoa
class Header: NSView {
@IBOutlet var view: Header!
@IBOutlet weak var dateLabel: NSTextField!
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
// Drawing code here.
}
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
var topLevelObjects = NSArray()
Bundle.main.loadNibNamed("Header", owner: self, topLevelObjects: &topLevelObjects)
let view = ((topLevelObjects as Array).filter { $0 is NSView })[0] as! NSView
self.frame = NSRect(x: 0, y:0, width: view.frame.width, height: view.frame.height)
self.addSubview(self.view)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
}
【问题讨论】:
标签: swift xcode macos swift3 interface-builder