問題タブ [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.
objective-c - シートが表示されているときにマウスイベントを防ぐ方法は?
シートが表示されているときに がアクティブなままであることがわかりました。このコードを使用しましNSView
た。rightMouseUp
禁止したいのですがrightMouseUp
どうすればいいですか?
objective-c - NPanel が別のオブジェクトとして開かれないようにする方法
私はNSCollectionView
10で構成されており、オブジェクトライブラリからNSButtons
ドラッグしました。NSpanel
ボタンをクリックするNSpanel
と表示されます。次のボタンをクリックすると、最後に生成されたNSpanelが閉じられ、別のNSpanelが開かれました。私の問題は、NSpanel が生成されたことです。2 番目のボタンをクリックすると、別の NPanel が表示され、前のものが閉じられませんでした。
objective-c - NSWindowController を使用した NSPanel が xcode に表示されるが、アーカイブされたアプリには表示されない
PreferencePanel
リリースおよびデバッグモードでXcodeから起動した場合にのみ表示されるという問題があります。しかし、アプリケーションのアーカイブされた .app を起動すると、ボタンをクリックしても何も起こりませんPreferences
。Xcode から起動した場合、設定パネルを開いて閉じ、数秒待ってからそのコマンドを再試行しても、何も起こらず、パネルが表示されません。私は「PreferenceController」と呼ばれるクラスを使用しており、メソッドでNSWindowController
nibファイルを. xib のファイル所有者は " " に設定され、window プロパティは xib のパネルに接続されます。-(id)init
return [super initWithWindowNibName:@"Preferences"];
PreferenceController
私の AppController には-(IBAction)showPreferencePanel:(id)sender
、パネルを開くメソッドがあります。
はAppController
でインスタンス化されますmainMenu.xib
。
ご協力いただきありがとうございます。
objective-c - 「Non-Activating」モードの NSPanel が常に正しいカーソルを表示するとは限らない
NSPanel
デフォルトの の代わりに を使用して、XCode 4.6 で単純な Cocoa アプリケーションを作成しましたNSWindow
。Non-Activating オプションを有効にしてアプリケーションを起動すると、すべて正常に動作します。
パネルは他のすべてのものの前に表示され、マウス カーソルがパネルの端に置かれると、通常の矢印カーソルから適切なサイズ変更カーソルに変わるため、ユーザーはパネルのサイズを変更できることがわかります。
Safari や Finder などの他のアプリケーションをクリックしない限り、これは問題なく機能します。
一度別のアプリケーションにフォーカスを移した瞬間から、好きなだけ自分のパネルをクリックしてホバーすることができます。カーソルのスタイルはもう変更されません。カーソルは常に矢印のままで、通常の動作に戻ることはできません。
パネルは引き続き選択可能で前面にあり、移動およびサイズ変更を行うことができますが、マウス カーソルは常に矢印のままです。その後、次のようなものを使用して手動で変更することさえできません[[NSCursor crosshairCursor] set]
。
NSPanel
そのため、別のアプリケーションにフォーカスを移した場合でも、通常の自動変更カーソル スタイルを維持する方法を見つける必要があります。
私はすでにカスタマイズされた -class を使用しようとしました。ここではand
メソッドNSPanel
を上書きして、 YES を返すようにしましたが、Panel を作成しても...canBecomeKeyWindow
canBecomeMainWindow
KeyWindow
MainWindow
...カーソルの問題は解決しません。
誰かがここで私を助けることができれば素晴らしいでしょう:)
PS .: 私のプロジェクトでは、Base SDK と Deployment Target が 10.8 に設定されています。
そのため、説明されている問題はパネルのウィンドウ状態とは関係がないことがわかりました。key に設定されているか main に設定されているかは問題ではなく、カーソルの問題 (常に矢印のまま) は、アプリケーションのアクティブ化状態に関連しています。
パネルを所有するアプリケーションがアクティブである限り、すべて正常に動作しますが、別のアプリケーションをクリックすると、" non-activating
" オプションが有効になっているため、パネルをクリックしてもアプリケーションが非アクティブになり、再びアクティブになりません。
問題は、non activating
実行中のアプリケーションを非アクティブ化せずに、他のすべての前に表示して操作するステータスバー画面キャプチャアプリを作成しているため、「」オプションが必要なことです。私はカーソルの問題を解決することができました
[NSApp activateIgnoringOtherApps];
しかし、Safari で実行されているフルスクリーン ビデオのスクリーンショットを撮ると、Safari が非アクティブになり、ビデオが最小化されてしまいます。これは望ましくありません。
objective-c - Cocoa で NSTimer を使用してカスタム NSPanel を閉じる
カスタム NSPanel を作成し、Sheet で開始することを示します。閉じるボタンがありません。10秒後にNSTimerでこのパネルを閉じたいです。どうやってやるの?
closePanel () 関数:
objective-c - NSPanel の上にアラート?
私はNSPanelを持っています。次のコードを使用します。
この Panel には、NSTextField を含むビューがあります。NSTextField テキストの条件によっては、NSPanel ビューの上にアラートを表示する必要があります。アラートをスローするコード:
どうすればこれを達成できますか?