「Xamarin.Macでアプリ選択ダイアログを表示する」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「アプリを選択するダイアログを表示したい。 ここで選択した外部アプリを起動したり制御したり。 == 実装 == Macのアプリの実…」) |
Administrator (トーク | 投稿記録) (→関連項目) |
||
34行目: | 34行目: | ||
* [[Xamarin.Macでウインドウを最前面にする]] | * [[Xamarin.Macでウインドウを最前面にする]] | ||
* [[Xamarin.Macでアプリ自身を再起動する]] | * [[Xamarin.Macでアプリ自身を再起動する]] | ||
+ | * [[Xamarin.Macでアプリを起動する]] | ||
+ | * [[Xamarin.MacでアプリのBundle Identifierを調べる]] | ||
[[category: Xamarin.Mac]] | [[category: Xamarin.Mac]] |
2020年3月5日 (木) 06:23時点における最新版
アプリを選択するダイアログを表示したい。 ここで選択した外部アプリを起動したり制御したり。
実装[編集 | ソースを編集]
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);
}