問題タブ [nsopenpanel]

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 に答える
6015 参照

cocoa - beginSheetModalForWindow からの URL の取得:

OpenPanel を使用してファイル パス URL を取得しています。これは機能します:

これはそうではなく、「読み取り専用変数の割り当て」エラーが発生します。

一般に、oPanel のコンテキストから pathToFile を抽出しようとしても失敗します。これは小さな状況では大したことではありませんが、コードが大きくなるにつれて、XML 解析、コア データなどのすべてを不適切な領域に詰め込む必要があります。pathToFile を抽出するにはどうすればよいですか?

ありがとう。

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

objective-c - 開いているパネルが表示され、すぐに消えます

私はこのコードを使用しています:

これは、メソッド内の唯一のコードです。メソッドが呼び出されると、開いているパネルが画面に 1 秒間表示されてから消えます。これを防ぐにはどうすればよいですか?

ありがとう。

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

cocoa - Determine when a NSOpenPanel will close

I'm trying to determine when an NSOpenPanel is closing before it actually closes. I need to do this so I can overlay another window with a screenshot of the open panel on top of it to be animated. Unfortunately, all the notifications that you seem to be able to access seem to fire AFTER the window's already been closed. This leads to a jarring stutter before you start your transition.

I've tried:
- using NSWindow delegate methods on the open panel (apparently, none of the NSWindow delegate methods work)
- monitoring panel:userEnteredFilename:confirmed: (not called)
- showing the dialog with a callback (callback happens AFTER the panel disappears)

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

cocoa - NSOpenPanel (Cocoa OSX) のキャンセル ボタンのテキストを変更する

多くの機能をカスタマイズできるカスタマイズ可能なセレクターが欲しいです。方法がわからないことの 1 つは、キャンセル ボタンのテキストを変更することです。メソッド setPrompt は OK ボタンのテキストを変更することがわかりましたが、キャンセル ボタンの同様のメソッドが見つかりません。そのようなメソッドはありますか?

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

objective-c - NSOpenPanel setAllowedFileTypes

NSOpenPanelを持っています。ただし、PDFファイルのみを選択できるようにしたい。私はそのようなものを探しています:

誰かが解決策を持っていることを願っています。

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

c++ - C++ ブースト スレッドからの NSOpenPanel

ブースト C++ によって作成されたスレッドから NSOpenPanel を呼び出しています。

パネルが不規則に動作し、マウスにうまく反応しません。つまり、最上位のコンボ ボックスをクリックすると反応が改善されるのに、オブジェクトをクリックしても何も起こらないことがあります。

独自のループを実行する必要がある runModalForDirectory を実行しています。

メインスレッドでパネルを表示するために performSelectorOnMainThread を実行する別の objc クラスも作成しましたが、それでも動作は同じです。

また、waitUntilDone:NO を試してみましたが、どちらも役に立たない CFRunLoopRunInMode を実行しています。

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

cocoa - ココア どのウィンドウがフォアグラウンドかを知る方法

Mac OS X の GetForegroundWindow に似たものはありますか?

ウィンドウ化された (NSDocument ベースの) 2 つのアプリと、コマンド ライン ツールから NSOpenPanel を表示したい 1 つのコマンド ラインがあり、NSDocument ベースのアプリのモデルにしたいのですが、windowref がありません。

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

cocoa - [OK] / [キャンセル]ボタンがクリックされた後に閉じないようにNSOpenPanelを構成できますか?

代わりに、閉じる操作をアニメーション化したいと思います。ただし、[OK]または[キャンセル]ボタンがクリックされた直後にNSOpenPanelが画面外に消えないようにする方法を理解することができませんでした。

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

cocoa - ファイル/ディレクトリが選択されたらすぐにNSOpenPanelを閉じます

NSOpenPanel / NSSavePanel/NSPanelは初めてです。NSOpenPanelを使用して、アプリが反復処理するファイルのディレクトリを選択し、かなり時間のかかる処理を実行しています。

パネルで-closeを呼び出すことはできますが、メインウィンドウにフォーカスが戻りません。パネルを「閉じる」ことについてはたくさん読んだことがありますが、パネルやウィンドウを「閉じる」のではなく「閉じる」方法は見つかりませんでした。

バックグラウンドスレッド(NSOperation)を生成する必要があるだけですか?

これは私の-chooseDidEnd:returnCode:contextInfo:

NSOpenPanelは消えますが、NSProgressIndicatorはアニメーション化されず、メインウィンドウは-doLotsOfTimeConsumingWork:が完了するまで表示されませ

更新 NSOperationSampleコードを確認したところ、そのように見えます。

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

objective-c - NSOpenPanel の runModal を呼び出すと、アプリケーションが正しく終了しません

私は単純な Cocoa アプリケーションを作成しています。コア データや複数ドキュメントのサポートはありません。Mac Pro、OS X 10.6.6、Xcode 3.2.3 で実行。

AppDelegate クラスでアプリケーションを次のコードに減らしました。

デバッガー内から、アプリケーションを実行します。予想通り、あまり役に立たない OpenPanel が表示されます。キャンセルをクリックすると消えます。これはすべて予想どおりです。[Command + Q] をクリックしてアプリケーションを終了すると、UI は消えますが、デバッガーはアプリケーションがまだ実行中であることを示します (コンソール出力と同様)。

私が読んでいるすべての情報に基づいて、これを正しく実行するために他に何もする必要はありません。Open Panel の使用法に関するいくつかの例をダウンロードしましたが、ほとんどの場合、パラメーターとして追加情報を提供する非推奨のモーダルを開く方法を使用しています。FWIW、私はこれらの方法を試しましたが、まだ同じ結果が表示されています。

最後にもう 1 つ、[開く] ダイアログが表示されたときに、アプリケーションに着信接続を受信させたいかどうかを尋ねるメッセージ ボックスが一瞬だけ表示されます。ダイアログはすぐに消えます。それが私の問題の一部であるかどうかはわかりません。[更新 - これは、ファイアウォールがオンになっている場合に対処します。]

はい、私は Objective C ではかなり新しいですが、一般的なプログラミングではありません。知恵の言葉は大歓迎です!

2011.02.07 - 更新:

問題なくデバッガーを 1 行ずつ実行しました。コンソール ウィンドウにプログラム エラーの兆候はありません。

[Command + Q] を押した後も、デバッガーはアクティブのままであると言えます。これは、[プロセスの停止] ツールバー ボタンが [ブレーク] ボタンと同様に有効になっているためです。さらに、コンソールは、(メニューまたはキー コマンドを使用して) アプリケーションを終了するように指示した後も、まだ実行中であることを示しています。以下は、実行の開始からアプリケーションを終了した後までの完全なコンソール出力です。

アクティビティ モニター (システム ツール) は、アプリケーションが終了していることを示します (プロセスとして表示されなくなります) が、デバッガーはまだ「編集」モードに移行しません。Xcode にデバッガーを再度実行するように指示すると、 OK で現在のデバッグ セッションを停止します。私が Windows にいた場合、プロセスを維持するバックグラウンド スレッドを探し始めますが、私が知る限り、NSOpenPanel はそのようなことをすべきではありません。

プログラムをさらに単純化して、まったく新しい Cocoa アプリケーションを作成し、上記のコード スニペットを挿入するだけにしました。テンプレート プロジェクトへのその他の追加や更新は一切ありません。

最後に、アプリケーションが Leaks Performance Tool の下で実行されると、パネルが作成されても使用されない場合、すべてが正常に実行されます。ただし、作成して実際に使用すると、実行の最後に、ツールで次のメッセージが表示されます。これをグーグルで検索すると痛いです。私が正しく読んだ場合、デバッガーにはターゲットプロセスを完全に強制終了するための十分な権限がありません??? ばかげているように聞こえますが... 意味がありません。

別の更新 - NSOpenPanel も使用する SDK サンプル アプリケーションの 1 つである FunHouse をダウンロードして実行しました。まあ、私は特別だと感じませんか。まったく同じ動作を示します。したがって、このことから、Apple のコードにバグがあるか、私のマシンが特別で台無しになっているか、最終的には、私のコードではないことが原因であると結論付けます。それが最高の部分です。明日、私は友人の Mac を使用して、彼のボックスで同じ動作が見られるかどうかを確認します。

これは奇妙すぎる。