Я пишу приложение с Swift на macOS. Я хочу создать NSAlert с вертикальным NSStackView, который позволит пользователю выбрать один из N вариантов. Для этого я подключаю свой NSStackView к свойству accessorView моего NSAlert, и по какой-то причине мои переключатели не отображаются.
Вот что я пробовал до сих пор:
let a = NSAlert()
a.messageText = "Dummy1"
a.informativeText = "Dummy2"
a.addButton(withTitle: "OK")
let rb = NSButton(radioButtonWithTitle: "Foo", target: nil, action: nil)
a.accessoryView = rb
a.runModal()
Это показывает мне мой NSAlert с одним переключателем с надписью Foo. Таким образом, вспомогательное представление, кажется, работает.
Теперь я помещаю переключатель в StackView:
let a = NSAlert()
a.messageText = "Dummy1"
a.informativeText = "Dummy2"
a.addButton(withTitle: "OK")
let rb = NSButton(radioButtonWithTitle: "Foo", target: nil, action: nil)
let vsv = NSStackView()
vsv.orientation = NSUserInterfaceLayoutOrientation.vertical
vsv.distribution = NSStackViewDistribution.equalSpacing
vsv.alignment = .leading
vsv.isHidden = false
vsv.addView(rb, in: .center)
a.accessoryView = vsv
a.runModal()
Теперь радиокнопка больше не появляется. Добавление дополнительных переключателей в StackView также не помогает.