NSPopoverからWindowにViewを分裂させる
( macOS )NSPopoverからWindowにViewを分裂させる
BearのアプリのようにPopoverからタップを移動することでWindowにに分離する方法を知りたくて調査した。
まず、popover自体はNSPopover
を利用すれば表示することができる。
WindowにするにはNSPopoverのあるデリゲートメソッドを記述すればできるようになる
NSPopover
popover.contentViewController = viewController
popover.delegate = self
popover.behavior = NSPopover.Behavior.transient
分離方法
NSPopoverDelegate
func popoverShouldDetach(_ popover: NSPopover) -> Bool {
return true
}
Detaches the popover creating a window containing the content.
以下のメソッドでカスタムのwindowを作ることができる
func detachableWindow(for popover: NSPopover) -> NSWindow? {
return nil
//return detachedWindowController.window
}