NSPopoverを閉じる方法

f:id:tid-a24:20190312201458p:plain

BehaviorでNSPopoverの閉じる方法(挙動)を指定します。

let popover = NSPopover()
popover.behavior = .transient

Behaviorは3種類定義されています。

  1. applicationDefined
    開発者が動作を定義する。(閉じるボタンをつけるなど。)
    自動で閉じることはない。

  2. transient
    NSPopoverからフォーカスが外れると自動で閉じる。

  3. semitransient
    transientと同じだが、他Window(他のアプリケーション含む)へのフォーカス移動では閉じない。
    また、他Windowへフォーカスを移動した後にNSPopoverを表示しているWindowへフォーカスを移動しても閉じない。

基本的にtransientを使用して、NSPopoverを表示したまま他Windowを操作する必要があればsemitransientを使えばいいように思います。