差分
[[MonoMac]]のプロジェクト直下のResourcesフォルダに画像などの各種[[ファイル]]を突っ込んでおくと[[アプリ]]の一部として配布することができる。
==パスの取得==
いわゆる[[アイコン]]としてみ見える[[Mac]]の[[アプリ]]は[[拡張子]]が「.app」の[[フォルダ]]であり、その中に本当の実行ファイルやリソースなどが詰め込まれている。
[[プラットフォーム]]によってはリソースファイルといえばひとつの[[バイナリ]]に固められて専用[[API]]で取り出したりするが、[[Mac OSX]]の場合は単純に「○○○.app/Contents/Resources/」(○○○はアプリ)の中に[[ファイル]]などとして格納されている。
アプリのルートディレクトリはNSBundle.MainBundle.BundlePathプロパティで取得できるので、あとは決め打ちえ「Contents」と「Resources」を付け加えてやればよい。なお、[[ディレクトリセパレータ]]は[[Windows]]では[[バックスラッシュ]]だが[[Mac]]では[[スラッシュ]]なので、そこら辺はSystem.IO.Path.Combineメソッドに任せておいた方が無難だと思われる。
<source lang="csharp">
using System.IO;
using MonoMac.Foundation;
// 中略
var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
var file = "images-blue.png";
var image = new NSImage(Path.Combine(path,file));
</source>
==関連項目==
*[[MonoMac]]
==参考文献==
{{reflist}}
{{stub}}
==パスの取得==
いわゆる[[アイコン]]としてみ見える[[Mac]]の[[アプリ]]は[[拡張子]]が「.app」の[[フォルダ]]であり、その中に本当の実行ファイルやリソースなどが詰め込まれている。
[[プラットフォーム]]によってはリソースファイルといえばひとつの[[バイナリ]]に固められて専用[[API]]で取り出したりするが、[[Mac OSX]]の場合は単純に「○○○.app/Contents/Resources/」(○○○はアプリ)の中に[[ファイル]]などとして格納されている。
アプリのルートディレクトリはNSBundle.MainBundle.BundlePathプロパティで取得できるので、あとは決め打ちえ「Contents」と「Resources」を付け加えてやればよい。なお、[[ディレクトリセパレータ]]は[[Windows]]では[[バックスラッシュ]]だが[[Mac]]では[[スラッシュ]]なので、そこら辺はSystem.IO.Path.Combineメソッドに任せておいた方が無難だと思われる。
<source lang="csharp">
using System.IO;
using MonoMac.Foundation;
// 中略
var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources");
var file = "images-blue.png";
var image = new NSImage(Path.Combine(path,file));
</source>
==関連項目==
*[[MonoMac]]
==参考文献==
{{reflist}}
{{stub}}