ファイルを開くためのダイアログを表示するだけの OS X 用の基本的な動的ライブラリを構築しようとしています。私のコードは次のようになります。
NSOpenPanel * dlg = [NSOpenPanel openPanel];
...//setting title and other properties for dlg
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, dispatch_get_main_queue(), ^
{
resButton = [dlg runModal];
});
dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
if (resButton == NSFileHandlingPanelOKButton)//resButton is global
{...}
これは基本的に機能しますが、すべてが少しずれています。
- ダイアログがまったく同じ方法で 2 回初期化されることはありません (異なる初期ディレクトリ、レイアウト モードなど)。
-別のディレクトリを選択し、最初のディレクトリをもう一度選択するまで、最初のディレクトリが空として表示されることがあります。
-「右クリック」メニューが表示されません。
- スクロール バウンス バック効果が機能しません (!!!)。すべてが消えるまで、無限に下にスクロールできます。
-列モードでは、プレビューは機能しません (ロード アイコンが永遠に変わります)。 ただし、大きいアイコン モードで表示すると、画像は適切なプレビューになります。
実行されていない更新スレッド全体があるようです。おそらく、lib が呼び出される奇妙なコンテキストにリンクされています: JNA を使用する Java プログラムから。しかし、誰かが「[system startUpdateTask]を呼び出すだけ」など、問題を解決できる小さなトリックを知っていることを願っています:)
助けてくれてありがとう