У меня этот код в моем ViewController. Однако представление, которое я добавляю программно, нигде не видно.Как программно добавлять представления к NSWindow (или NSView)?
override func viewDidLoad() {
super.viewDidLoad()
let f: NSRect = NSMakeRect(0, 0, 200, 200)
let v: NSView = NSView(frame: f)
v.layer?.backgroundColor = NSColor.yellowColor().CGColor
self.view.addSubview(v)
}
Кроме того, я попытался создать пользовательские NSWindowController и установить, что в качестве пользовательского класса моего главного окна в интерфейс строитель раскадровки. Там у меня есть следующий код:
override func windowDidLoad() {
super.windowDidLoad()
let f: NSRect = NSMakeRect(0, 0, 200, 200)
let v: NSView = NSView(frame: f)
v.layer?.backgroundColor = NSColor.yellowColor().CGColor
self.window?.contentView?.addSubview(v)
}
Это не работает либо:/
Я даже попытался установить v.wantsLayer = true
как один из ответов, которые я нашел в Интернете предположить, однако, что казалось странным с самого начала идти и Конечно, ничего не сделал.
Что я здесь делаю неправильно?
вам необходимо установить 'v.wantsLayer = true' –
Я попытался' v.wantsLayer = true' в обоих вызовов метода 'viewDidLoad()' и 'windowDidLoad()' еще раз, однако оба представления все еще не видны. Я даже пробовал сумасшедшие вещи, такие как установка цвета слоя contentView на 'clearColor', думая, что, возможно, все представления добавляются под ним. Я даже зашел так далеко, чтобы сделать «self.window» .contentView? .addSubview (v, позиционируется: NSWindowOrderingMode.Above, relativeTo: self.window? .contentView) '... Еще нет сигары. Мнения нигде не видно. –