0
実行時にロードできるカスタムNSView(Header
)があります。しかし、このカスタムNSView(Header
)は、実行時に別のカスタムNSViewに埋め込まれ、そのサイズが大きくなり、下部に余分なスペースが生成されます(この余分なスペースは必要ありません)。この問題がないxibファイルをロードする別の方法はありますか?カスタムNSViewにxibファイルをロードすると、別のカスタムNSViewに埋め込まれます
これは、それがどのように見えるかです:あなたが制約とビューを使用して、独自のヘッダを追加しないのはなぜ
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/ –