問題タブ [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 投票する
1 に答える
591 参照

cocoa - NSPanelでのコントロールの初期化

アプリにNSPanelがあり、データエクスポート機能として使用しています。

パネルが最初に表示されたときに、パネルのコントロールを初期化するにはどうすればよいですか?(つまり、NSDefaultsを使用します)。デフォルト設定を復元できるウィンドウ/パネルが開いたときに発生するイベントはないようです(基本的にはNSPopupButtonの値を復元するだけです)。

現在、AppDelegateクラスで「[NSAppbeginSheet...]」を使用してパネルを開いています。代わりにNSWindowControllerサブクラスを使用する必要がありますか?

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

objective-c - ドキュメントベースのアプリケーションで複数のドキュメントのパネルを再利用する

ドキュメントベースのアプリケーションを作成していますが、開いている複数のドキュメントで再利用される 1 つの NSPanel を使用したいと考えています。

最初に開いているドキュメントの NSPanel で設定を変更してから、別の開いているドキュメントをクリックできるはずです。2 番目に開いているドキュメントをクリックすると、NSPanel が更新され、アクティブなドキュメントの設定が表示されます。

このセットアップを構成する適切な方法は何でしょうか?

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

cocoa - NSPanel でタイトルバーの高さを変更する

NSPanel のタイトルバーの高さを変更しようとしています。次のことを試しましたが、期待どおりに機能しませんでした。

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

objective-c - InterfaceBuilderで「タイトルバー」がチェックされていないNSPanelが表示されない

だから私は自分の基地をカバーしたと思ったが、どうやら私は重要なステップを1つか2つ逃しているようだ。

makeKeyAndOrderFront:NSStatusItemが押されたときに表示される()NSPanelがあります。物事はうまく機能しますが、NSPanelがタイトルバーを表示するので、パネルもドラッグ可能です。(これは望ましくありません。)

最初のスクリーンショットは、InterfaceBuilderの[外観]カテゴリで[タイトルバー]が有効になっているパネルを示しています。(ぼやけて申し訳ありませんが、物事は今のところまだロックとキーの下にあります。)

最初のスクリーンショット

Interface Builderで行われる唯一の変更は、[タイトルバー]チェックボックスをオフにすることです。次に、保存して再実行します。これが2番目のスクリーンショットに表示されています。わずかな影が表示されますが、パネルには表示されません。

ここに画像の説明を入力してください

私が試したこと:

  • NSPanelをサブクラス化して、少し調査した後、戻ってきましたがYES、(サブクラス化する前に)これらのメソッドは、タイトルバーを使用しているかどうかに関係なく両方とも戻ってきました。ですから、これは問題ではないと思います。canBecomeKeyWindowcanBecomeMainWindowNO

  • NSPanelのフレームが正しく設定されていることを確認しました。高さが良く、原点もきちんと設定されています。

編集:言及するのを忘れた:

このアプリケーションは、メニューバーのみのアプリケーションです。Info.plist以下のスクリーンショットでは、これを強制するために追加のエントリが追加されていることに注意してください。

情報リスト

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

objective-c - NSPanelがフォーカスを取得したとき、またはキーになったときを知る方法は?

XCode4でCocoa/Objective-Cアプリを作成していますが、設定パネルがいつ開かれるかを知る必要があります。windowDidBecomeKeyのようなコールバックが必要です。私はこの質問で提供された解決策に従おうとしましたが、どちらもwindowDidBecomeKeyデリゲートwindowDidExposeメソッドとして表示されません(ただし、、などの他のメソッドwindowDidLoadwindowWillLoadそうします)。

「デリゲートメソッドとして表示されない」とはどういう意味かを明確にするために、メソッド名を入力し始めたときにオートコンプリートに表示されないことを意味します。とにかくそれらを定義しようとしましたが、呼び出されることはありませんでした

オブジェクトにはこれらのメソッドがありませNSPanelんか、それとも私がしなければならないことがもっとありますか?

現在、私はインターフェースを持っていますPrefWindowController

PrefWindowController.h:

PrefWindowController.m:

アプリケーションの起動時にウィンドウが.xibから読み込まれると、起動し、windowDidLoad上記で定義された通知が表示されます。これは、メソッドが実際に呼び出されていることをテストするためだけに行いました。

パネルが重要になったとき、または焦点が合ったときにコールバックを取得する方法についてのアドバイスは非常に役立ちます。

アップデート:

windowDidBecomeKey次のようなメソッドをウィンドウコントローラーに追加しました。

PrefWindowController.h:

PrefWindowController.m:

ウィンドウを初めて開いたときにテストメッセージがログに記録されますが、main.mファイルの戻り行に次のエラーが表示されます。

スレッド1:プログラム受信信号: "EXC_BAD_ACCESS"

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

cocoa - iWork スタイルの Inspector パネルのタブ

iWork '09 Inspector に表示されるタブ ボタンの外観を取得するにはどうすればよいNSPanelですか?

私が得ることができる最も近いのはNSSegmentedControl、「小さな正方形」スタイルです。残念ながら、少なくとも Snow Leopard では、青い選択ではなく灰色の選択になります。

さまざまな iWork '09 Inspector で青みがかったアクア スタイルの選択を取得するために Apple が行ったアイデアはありNSPanelますか?

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

cocoa - カスタム シート : ボタンをクリックできない

このソースを使用しましたhttp://www.cats.rwth-aachen.de/library/programming/cocoa

カスタムシートを作成します。

NSPanel既存の .xib ファイルにオブジェクトを作成し、接続しましたIBOutlet

私のソースコード:

.h

.m

正常callPanelに動作し、シートが表示されますが、シート上のコントロール (ボタンを使用) を操作できません。クリックしても反応しません (視覚的にも)。

問題はどこにありますか?

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

cocoa - NSPanelが間違ったスペースにポップアップする

だから、私はこのソースを調べて、NSPanelを使用してカスタムポップオーバーでこれらのステータスバーアプリケーションの1つを作成しようとしています-

すべて正常に動作し、ダンディです。ほとんどの場合に機能するメニューレット呼び出し[panel makeKeyandOrderFront:nil]をクリックすると、ウィンドウは通常、他のすべての前の正しいスペースにポップアップ表示されます。

ただし、フルスクリーンスペース(フルスクリーンモードのXcodeなど)に移動してそこでメニューアプリケーションを使用しようとすると、パネルが間違ったスペース(以前に表示されたスペース)にポップアップし、意図した場所に何も表示されません。スペース。もう一度クリックして初めて、適切な場所に表示されます。

誰かがこの現象の説明がありますか?

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

objective-c - シートを表示しても、メインアプリを機能させる

このloadFileメソッドはNSTimer、whileループでアプリケーションをブロックすることなく、時間の経過とともにプロセスにファイルをロードすることを開始します。このタイマーは、コードの最初のビットでは起動せず、2番目のビットで起動します。問題は、2番目のビットがシートをシートではなくパネルスタイルのウィンドウとして表示することです。

まだ機能するシートを入手するにはどうすればよいですか?

シートを表示しますが、作業は行われません

ウィンドウを表示すると作業が完了します

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

xcode - NSPanel はモーダルですが、フォーカスを失います

NSPanel の 1 つに奇妙な問題があります。アプリケーションを起動し、NSTextField と NSButton のみの単純なパネルを使用して、プレーヤーの名前を取得します。アプリケーションで他の作業を行っていると、突然、アプリの起動時にパネルがフォーカスされなくなりました。ボタンは機能しますが、テキスト フィールドはフォーカスされず、入力を受け付けません。

どんなアイデアでも大歓迎です。

乾杯、

生活