問題タブ [nspanel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1379 参照

cocoa - Interface Builder で、ウィンドウのタイトル バーにカスタム ボタンを追加するにはどうすればよいですか?

私の OS X アプリでは、Interface Builder を使用して、次のようなウィンドウが表示されます。

ここに画像の説明を入力

これを実現するために、右側にボタンを追加したいと思います。

ここに画像の説明を入力

これが可能である場合、どうすればそれを行うことができますか?

0 投票する
1 に答える
357 参照

objective-c - NSPanel の背景色が通常のように灰色にならないのはなぜですか?

アプリのメニューバーにアイコンがあります。NSPanelアイコンをクリックするとAが表示されます。NSPanelしかし、他の灰色の背景のように背景色がないのはなぜNSWindowですか? 私NSPanelの背景は透明に見えます。私はファイルNSPanelから来てい.xibます。次のように私のコード:

0 投票する
3 に答える
6535 参照

objective-c - NSWindowControllerの閉じるボタンでモーダルを停止するには?

ユーザーが NSWindowController の赤い閉じるボタンをクリックしたときにモーダルを停止したい。

NSWindowController には、「OK」と「キャンセル」ボタンがあります。

赤い閉じるボタンをクリックすると、ウィンドウが閉じてモーダルが止まりません。windowWillClose:関数を見つけました。

でも、

OKボタンをクリックしてもwindowWillClose:関数が呼び出され、runModalForWindow:関数は常にNSCancelButtonを返します。

モーダルの結果として、メンバー変数をmyWindowControllerに追加できます。

しかし、この問題を解決する別の一般的な方法があると思います。

楽な道を歩みたい。

0 投票する
0 に答える
182 参照

objective-c - 「エージェント」アプリケーションをバックグラウンドで起動すると NSPanels が消える

StatusItem としてのみ表示されるエージェントを作成する試みの開始点として、Cocoa の「ステータス バー」チュートリアル ( http://cocoatutorial.grapewave.com/tag/status-bar/ ) を使用しました。

このアプリケーションにはメインの NSWindow オブジェクトがなく、関連付けられた 3 つの NSPanel があります。1 つの NSPanel は Application Preferences ウィンドウとして機能し、他の 2 つの NSPanel はユーザーに短いテキストを入力して OK ボタンを押すだけです。

設定パネルは、次のように NSMenuItem を介して起動されます。

XCode 内からアプリケーションをビルドして実行すると、すべて正常に動作するように見えます。ただし、Finder などから Xcode の外部からアプリケーションを実行すると、これらのウィンドウはまったく表示されません。

さらに、XCode 内から動作を複製することができます。設定パネルを表示してからクリックすると (たとえば、この Safari ウィンドウをクリックすると)、設定パネルが消えてしまい、二度と表示されなくなります。環境設定パネルを再表示するには、XCode 内からアプリケーションを物理的に停止してから再度実行する必要があります。

誰の助けにも感謝します!

0 投票する
1 に答える
484 参照

objective-c - NSPanel の背景が黒く、テキストが見えない

ScreenSaverViewサブクラスの設定シートを表示させようとしています。Xcode との長い戦いの後、システム環境設定で [スクリーン セーバー オプション] をクリックすると (そして私のスクリーン セーバーが選択されていると) 設定シートが表示されるようになりました。 、テキストを非表示にします (画像を参照)。構成シートの黒の背景。

これは、シートがNSPanelorNSWindowクラスであるかどうか、およびパネルが通常のパネル、ユーティリティ パネル、または HUD パネルであるかどうかに関係なく発生します。私ができる唯一のことは、パネルのアルファ値を変更することです。これにより、予想どおり、すべてがより透明になります (ただし、テキストはまだ表示されません)。興味深いことに、setOpaqueorsetBackgroundColorNSPanelorを呼び出しNSWindowても効果はないようです。

0 投票する
1 に答える
7235 参照

xcode - NSWindow からモーダルにポップアップする NSPanel を作成する方法 (Cocoa プログラミング)

NSWindow でボタンをクリックした後に表示される NSPanel のようなものです。

私はたくさん探しましたが、簡単な例はありません。助けてくれてありがとう。

0 投票する
2 に答える
184 参照

macos - 上からどうやって作るの?(ココアシート)

次の方法でシート(NSPanel)を実装しました。

}

シートが画面の中央に表示されます。それをメイン ウィンドウの上部に取り付けて、代わりに「スライド ダウン」効果で表示するにはどうすればよいですか?

前もって感謝します。

0 投票する
2 に答える
627 参照

objective-c - ユーザーが閉じたときにNSPanelの割り当てを解除しないようにする方法

小さくてシンプルなステータスメニューアプリケーションを開発しています。
メニューがあり、ユーザーがそれをクリックすると、HUDウィンドウ(NSPanel)が表示されます。これが私がパネルを表示する方法です:

これが私がウィンドウを閉じる方法です:

これがイベントチェーンです。

  1. アプリが起動したら、ウィンドウを閉じます。
  2. 次に、ユーザー(私です:-))がメニュー項目をクリックして、パネルを表示します。
  3. 次に、xをクリックしてパネルを閉じます。
  4. 次に、メニュー項目をもう一度クリックすると、ウィンドウが再び表示されません。

おそらく割り当てが解除されたために再び表示されることはなく、弱いストレージを配置しました。そうしないと、__ unsafe_unretainedを使用すると、2回目の起動時にクラッシュします。
したがって、ユーザーがウィンドウをクリックしたときにウィンドウの割り当てを解除しないようにする方法があるかどうかを推測しています。
強力なストレージを試してみましたが、2回目の起動時にこのケースを再度閉じることができず、問題が発生します。
ユーザーがウィンドウを「殺す」ことなくウィンドウを表示できるメニューステータスアプリケーションはたくさんありますが、私は似たようなものを作成します。

0 投票する
1 に答える
191 参照

objective-c - Cocoa: HUD パネルが閉じているときにアプリを閉じる

ユーザーがパネルの閉じるボタンをクリックしたときに、アプリ全体を閉じる必要があります。

ただし、ファイルセレクターパネルからもアプリを閉じます。

前もって感謝します。L.

0 投票する
1 に答える
481 参照

cocoa - NSPanelでNSNonactivatingPanelMaskのオンとオフを切り替えることは可能ですか?

NSPanelこのユースケースは非定型であることを理解していますが、特定の状況でのみ、非アクティブ化する方法を見つけようとしています。

NSPanelで初期化されている場合NSNonactivatingPanelMask(またはパネルの「非アクティブ化」プロパティがInterface Builderでチェックされている場合)、コードの後半でスタイルマスクを変更しても、ウィンドウの動作には影響しません。

styleMaskプロパティを調べると、がオンになっていることがNSNonactivatingPanelMaskわかりますが、タイトルバーをクリックしてもアプリケーションはアクティブになります。

逆もまた真です。NSNonactivatingPanelMaskコードでマスクを初期化して([panel styleMask] & ~NSNonactivatingPanelMask)後で設定しても、ウィンドウの動作には影響がないため、タイトルバーがクリックされたときにアプリケーションがアクティブ化されません。

ウィンドウにスタイルマスクを再解釈するように指示する方法など、これに対する簡単な回避策はありますか?そうでない場合、最適な代替手段は何ですか?