「Xamarin.Macでシステムステータスバーにアイコンを表示する」の版間の差分

imported>Mono Book
ページの作成:「Mac OS Xのシステムステータスバー(Windowsでいうタスクトレイ)にアイコンを表示したい。 ファイル:システムステータ...」
 
 
(4人の利用者による、間の9版が非表示)
1行目: 1行目:
[[Mac OS X]]のシステムステータスバー([[Windows]]でいうタスクトレイ)にアイコンを表示したい。
[[Mac OS X]]の[[システムステータスバー]]([[Windows]]でいう[[タスクトレイ]])に[[アイコン]]を表示したい。
[[ファイル:システムステータスバー.png|none|Mac OS Xのシステムステータスバー]]
[[ファイル:システムステータスバー.png|none|Mac OS Xのシステムステータスバー]]


==実装例1==
== 実装例 ==
NSStatusBar.SystemStatusBar以下にCreateだのRemoveだのといったインスタンスを生成したり削除したりする静的メソッドがある。
NSStatusBar.SystemStatusBar以下にCreateだのRemoveだのといった[[インスタンス]]を生成したり削除したりする静的メソッドがある。
システムステータスバーにアイコンを表示するにはこのメソッド群で作ったインスタンスのImageプロパティにNSImageをぶち込んでやればよい。
[[システムステータスバー]]に[[アイコン]]を表示するにはこのメソッド群で作ったインスタンスのImageプロパティにNSImageをぶち込んでやればよい。


<source lang="csharp">
<source lang="csharp">
23行目: 23行目:
             statusItem.Image = new NSImage(Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources", "CDx18.png"));
             statusItem.Image = new NSImage(Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources", "CDx18.png"));


             // アイコンをダブルクリックされたらこのアプリを終了する
             // アイコンがダブルクリックされたらこのアプリを終了する
             statusItem.DoubleClick += (object sender, EventArgs e) => {
             statusItem.DoubleClick += (object sender, EventArgs e) => {
                 NSApplication.SharedApplication.Terminate(this);
                 NSApplication.SharedApplication.Terminate(this);
60行目: 60行目:
</source>
</source>


==その他==
=== メニューのセパレータ ===
システムステータスバーに表示するアイコンサイズは18pxにするとピッタリらしい。少し余裕をみて16pxでもいいような気がする。まるで[[X68000]]やらの[[スプライト]]みたいサイズであり[[ドット絵師]]としての腕前が必要となる高度な分野である。なお縮小していない256x256サイズの画像をImageプロパティにぶち込んでみたが、そのまま表示され自動では縮小されなかった。[[Photoshop]]や[[FireAlpaca]]あたりのペイントソフトで縮小しておくとよい。
NSMenuItem.SeparatorItemにセパレータのインスタンスがいる。
<source lang="csharp">
    appMenu.AddItem( NSMenuItem.SeparatorItem );
</source>
 
== アイコンの解像度 ==
システムステータスバーに表示するアイコンサイズは18pxにするとピッタリらしい。少し余裕をみて16pxでもいいような気がする。まるで[[X68000]]やらの[[スプライト]]みたいなサイズであり[[ドット絵師]]としての腕前が必要となる高度な分野である。
 
試しに256x256サイズの画像をImageプロパティにぶち込んでみたが、そのままの解像度で一部だけ表示され自動では縮小されなかった。[[Photoshop]]や[[FireAlpaca]]あたりのペイントソフトで縮小しておくとよい。


また、どのアプリも軒並み白黒のアイコンを使っているが、システムステータスバーは白黒画像しか扱えないわけではなく、カラー画像でも普通に表示される。しかしひとつだけカラーだと凄い安っぽく見えるので止めた方が無難である。
また、どのアプリも軒並み白黒のアイコンを使っているが、システムステータスバーは白黒画像しか扱えないわけではなく、カラー画像でも普通に表示される。しかし「ひとつだけカラー」だと凄い安っぽく見えるので止めた方が無難である。


[[Yosemite]]ではdeprecationの警告が出る。代替となる方法は不明である。
[[Yosemite]]ではdeprecationの警告が出る。代替となる方法は不明である。


==関連項目==
==関連項目==
*[[Xamarin.Mac/Dockアイコンを非表示にする]]
* [[Xamarin.Mac/Dockアイコンを非表示にする]]
*[[MonoMac/Resource Bundleを利用する]]
* [[Xamarin.Mac/スリープからの復帰を検出する]]
* [[MonoMac/Resource Bundleを利用する]]


==参考文献==
==参考文献==
76行目: 85行目:
{{stub}}
{{stub}}


[[category:MonoMac]]
[[category:Xamarin.Mac]]
[[category:Xamarin.Mac]]