だから私は自分の基地をカバーしたと思ったが、どうやら私は重要なステップを1つか2つ逃しているようだ。
makeKeyAndOrderFront:
NSStatusItemが押されたときに表示される()NSPanelがあります。物事はうまく機能しますが、NSPanelがタイトルバーを表示するので、パネルもドラッグ可能です。(これは望ましくありません。)
最初のスクリーンショットは、InterfaceBuilderの[外観]カテゴリで[タイトルバー]が有効になっているパネルを示しています。(ぼやけて申し訳ありませんが、物事は今のところまだロックとキーの下にあります。)
Interface Builderで行われる唯一の変更は、[タイトルバー]チェックボックスをオフにすることです。次に、保存して再実行します。これが2番目のスクリーンショットに表示されています。わずかな影が表示されますが、パネルには表示されません。
私が試したこと:
NSPanelをサブクラス化して、少し調査した後、戻ってきましたが
YES
、(サブクラス化する前に)これらのメソッドは、タイトルバーを使用しているかどうかに関係なく両方とも戻ってきました。ですから、これは問題ではないと思います。canBecomeKeyWindow
canBecomeMainWindow
NO
NSPanelのフレームが正しく設定されていることを確認しました。高さが良く、原点もきちんと設定されています。
編集:言及するのを忘れた:
このアプリケーションは、メニューバーのみのアプリケーションです。Info.plist
以下のスクリーンショットでは、これを強制するために追加のエントリが追加されていることに注意してください。