メインメニューを開く

差分

Xamarin.MacでDockアイコンを非表示にする

396 バイト追加, 2015年5月25日 (月) 04:54
info.plistでドックアイコンを非表示にする方法では常に非表示になってしまい使いにくい場面も多い。
[[ソースコード]]で動的に制御できると捗る。
この例ではAppDelegateのDidFinishLaunchingメソッドでドックアイコンを消しているがこれに限らず、たとえばNSApplicationのインスタンスを生成しているMainメソッドでいきなり叩いても動くようだ。NSApplicationインスタンスのActivationPolicyプロパティに、「Accessory」または「Prohibited」を設定するとドックアイコンが非表示になり、「Regular」を設定するとドックアイコンが表示になる。
<source lang="csharp">
public partial class AppDelegate : NSApplicationDelegate
public override void DidFinishLaunching(NSNotification notification)
{
// NSApplicationのActivationPolicyプロパティに
// AccessoryまたはProhibitedを設定するとドックアイコンが非表示になり、
// Regularを設定するとドックアイコンが表示になる。
var app = NSApplication.SharedApplication;
app.ActivationPolicy = NSApplicationActivationPolicy.Accessory;
}
}
</source>
 
上記の例ではAppDelegateのDidFinishLaunchingメソッドでドックアイコンを消しているがこれに限らず、たとえばNSApplicationのインスタンスを生成しているMainメソッドでいきなり叩いても動くようだ。
<source lang="csharp">
static class MainClass
{
static void Main(string[] args)
{
NSApplication.Init();
 
var application = NSApplication.SharedApplication;
application.ActivationPolicy = NSApplicationActivationPolicy.Accessory;
application.Delegate = new AppDelegate();
application.Run();
}
}
匿名利用者