0
我有一個自定義的NSView(稱爲Header
),我可以在運行時加載。然而,這個自定義的NSView(Header
)在運行時嵌入到另一個自定義NSView中,該運行時間更長,並且在底部產生額外的空間(我不希望這個額外的空間)。有沒有另一種方式來加載一個xib文件,不會有這個問題?將xib文件加載到自定義NSView中嵌入另一個自定義NSView
這裏是我如何加載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)
}
}
嘿克里斯蒂安,會與一個NSView這項工作? – Rana
當然,如果你正在開發的NSView是iOS桌面應用程序,如果不使用UIView。這裏有幾個使用NSView的例子。 http://www.knowstack.com/swift-autolayout-visual-format-language-sample-code/ –