メインメニューを開く

Xamarin.Macでアプリ選択ダイアログを表示する

アプリを選択するダイアログを表示したい。 ここで選択した外部アプリを起動したり制御したり。

実装編集

Macのアプリの実体は「拡張子.appのディレクトリ」だが、 NSOpenPanelではファイルとして処理する必要がある(CanChooseFilesプロパティをtrueにする)。

また、初期状態ではグレーアウトして選択できないようになっているので、 ShouldEnableUrlプロパティで拡張子「app」の場合にtrueを返すことで有効化する。

// パネル生成
var panel = new NSOpenPanel();
panel.Title = "アプリを選択";
panel.AllowsMultipleSelection = false;
panel.CanChooseDirectories = false;
panel.CanChooseFiles = true;
panel.ShouldEnableUrl = new NSOpenSavePanelUrl((p, u) =>
    u.PathExtension == "app"
);
panel.Directory = "/Applications";

// パネル表示
var ret = panel.RunModal();

// 結果
if (ret == (int)NSModalResponse.OK)
{
    Console.WriteLine(panel.Filename);
}

関連項目編集