NSPanel
には、HUDパネル用の「非アクティブ化」オプションがあります。 NSWindow
で同じ機能を使用したいと思っています。つまり、ウィンドウがクリックを受け入れるようにしたいのですが、アクティブなアプリが何であってもフォーカスを取らないようにしたいのです(これはウィンドウをクリックする前にアクティブだったアプリですapp - この場合はSketch)。NSWindowでNSPanelの "非アクティブ化"スタイル機能を使用する方法はありますか?
私はNSWindow
サブクラスを作成し、NO
からcanBecomeMainWindow
とcanBecomeKeyWindow
を設定しようとしたが、それはしていないように見える作業-Iは、これらの設定は、同じアプリ内窓に適用されるためだと思います。
私がここでやろうとしているのは、this flickeringを防ぐことです。私はAlfredのようなアプリがそうしているように、これが実行可能であると確信しています。
こんにちはエリオットとようこそ。あなたが行ったこととあなたの問題がどこにあるのかを実証するために、コードのスニペットを挿入して質問をすると、それはより多くのユーザーがあなたの質問を詳細に研究し、あなたに答えを提供するようになります。 – Patrick
なぜ 'NSPanel'を使わないのですか? **は**窓です。 'NSWindow'でできることは何でも、あなたは' NSPanel'でもやります。デフォルトの動作を変更するメソッドやプロパティはいくつかありますが、オーバーライドを使用してそれらを変更することができます。 –
@KenThomases返信Kenに感謝します。私がNSPanelで遭遇した問題は、ウィンドウ全体を暗くするのではなく、NSWindowTitleHiddenを設定しようとしていました。私の 'NSWindow'では、これらの外観設定と、次に' NSVisualEffectView'が明に設定されています: 'self.window.styleMask = self.window.styleMask | NSFullSizeContentViewWindowMask; self.window.titleVisibility = NSWindowTitleHidden; self.window.titlebarAppearsTransparent = YES; ' –