「Xamarin.MacでResource Bundleを利用する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Monobook
(Monobook がページ「MonoMac/Resource Bundleを利用する」を「Xamarin.Mac/Resource Bundleを利用する」に移動しました)
imported>Administrator
(Administrator がページ「Xamarin.Mac/Resource Bundleを利用する」を「Xamarin.MacでResource Bundleを利用する」に移動しました)
 
(他の1人の利用者による、間の2版が非表示)
1行目: 1行目:
[[MonoMac]]のプロジェクト直下のResourcesフォルダに画像などの各種[[ファイル]]を突っ込んでおくと[[アプリ]]の一部として配布することができる。
+
Xamarin.Macのプロジェクト直下のResourcesフォルダに画像などの各種[[ファイル]]を突っ込んでおくと[[アプリ]]の一部として配布することができる。
  
==パスの取得==
+
== パスの取得 ==
 
いわゆる[[アイコン]]としてみ見える[[Mac]]の[[アプリ]]は[[拡張子]]が「.app」の[[フォルダ]]であり、その中に本当の実行ファイルやリソースなどが詰め込まれている。
 
いわゆる[[アイコン]]としてみ見える[[Mac]]の[[アプリ]]は[[拡張子]]が「.app」の[[フォルダ]]であり、その中に本当の実行ファイルやリソースなどが詰め込まれている。
 
[[プラットフォーム]]によってはリソースファイルといえばひとつの[[バイナリ]]に固められて専用[[API]]で取り出したりするが、[[Mac OSX]]の場合は単純に「○○○.app/Contents/Resources/」(○○○はアプリ)の中に[[ファイル]]などとして格納されている。
 
[[プラットフォーム]]によってはリソースファイルといえばひとつの[[バイナリ]]に固められて専用[[API]]で取り出したりするが、[[Mac OSX]]の場合は単純に「○○○.app/Contents/Resources/」(○○○はアプリ)の中に[[ファイル]]などとして格納されている。
8行目: 8行目:
 
<source lang="csharp">
 
<source lang="csharp">
 
using System.IO;
 
using System.IO;
using MonoMac.Foundation;
+
using Foundation;
  
 
// 中略
 
// 中略
17行目: 17行目:
 
</source>
 
</source>
  
==関連項目==
+
== 関連項目 ==
*[[MonoMac]]
+
* [[Xamarin.Mac/ボタンに画像を貼り付ける]]
  
==参考文献==
+
== 参考文献 ==
 
{{reflist}}
 
{{reflist}}
  

2017年12月21日 (木) 01:32時点における最新版

Xamarin.Macのプロジェクト直下のResourcesフォルダに画像などの各種ファイルを突っ込んでおくとアプリの一部として配布することができる。

パスの取得[編集 | ソースを編集]

いわゆるアイコンとしてみ見えるMacアプリ拡張子が「.app」のフォルダであり、その中に本当の実行ファイルやリソースなどが詰め込まれている。 プラットフォームによってはリソースファイルといえばひとつのバイナリに固められて専用APIで取り出したりするが、Mac OSXの場合は単純に「○○○.app/Contents/Resources/」(○○○はアプリ)の中にファイルなどとして格納されている。

アプリのルートディレクトリはNSBundle.MainBundle.BundlePathプロパティで取得できるので、あとは決め打ちえ「Contents」と「Resources」を付け加えてやればよい。なお、ディレクトリセパレータWindowsではバックスラッシュだがMacではスラッシュなので、そこら辺はSystem.IO.Path.Combineメソッドに任せておいた方が無難だと思われる。

using System.IO;
using Foundation;

// 中略

var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
var file = "images-blue.png";
var image = new NSImage(Path.Combine(path,file));

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]