Ответ 1
По крайней мере, сейчас (Beta3), немодальное представление должно иметь свое собственное окно, и нет простого способа создать для него такой сегмент.
Вместо этого перетащите новый объект Window Controller на свою раскадровку. Он будет поставляться со своим собственным представлением контента как "Отслеживание отношений". Тем не менее, если для окна требуется другое представление (например: контроллер представления таблиц), просто удалите новый контроллер View и перетащите элемент управления с помощью нового контроллера окон на контроллер просмотра, представление которого вы хотите использовать для содержимого окна.
Важно: Выберите объект Window Controller в Storyboard и в Identity Inspector, установите идентификатор раскадровки в строку, которая будет идентифицировать это окно (например: "Inspector" ).
Затем просто напишите небольшой код, чтобы показать окно:
var inspectorController: NSWindowController?
@IBAction func showInspector(sender : AnyObject) {
if !inspectorController {
let storyboard = NSStoryboard(name: "Main", bundle: nil)
inspectorController = storyboard.instantiateControllerWithIdentifier
("Inspector") as? NSWindowController
}
if inspectorController { inspectorController!.showWindow(sender) }
}
Я действительно счел предпочтительным not использовать основную раскадровку для любых окон вообще. Одна из причин заключается в том, что с помощью раскадровки (по крайней мере, прямо сейчас) нет способа перехвата начального сеанса при запуске приложения, а windowWillLoad никогда не вызывается в главном окне контроллера.
Вместо этого создайте отдельные раскадровки для окон приложения и/или документа и используйте класс AppDelegate для их создания. Дополнительная информация и рабочий пример в этом потоке.