「Xamarin.MacでDockアイコンを非表示にする」の版間の差分
imported>Administrator 細 Administrator がページ「Xamarin.Mac/Dockアイコンを非表示にする」を「Xamarin.MacでDockアイコンを非表示にする」に移動しました |
|||
| (他の1人の利用者による、間の2版が非表示) | |||
| 13行目: | 13行目: | ||
info.plistでドックアイコンを非表示にする方法では常に非表示になってしまい使いにくい場面も多い。 | info.plistでドックアイコンを非表示にする方法では常に非表示になってしまい使いにくい場面も多い。 | ||
[[ソースコード]]で動的に制御できると捗る。 | [[ソースコード]]で動的に制御できると捗る。 | ||
NSApplicationインスタンスのActivationPolicyプロパティに、「Accessory」または「Prohibited」を設定するとドックアイコンが非表示になり、「Regular」を設定するとドックアイコンが表示になる。 | |||
<source lang="csharp"> | <source lang="csharp"> | ||
public partial class AppDelegate : NSApplicationDelegate | public partial class AppDelegate : NSApplicationDelegate | ||
| 21行目: | 22行目: | ||
public override void DidFinishLaunching(NSNotification notification) | public override void DidFinishLaunching(NSNotification notification) | ||
{ | { | ||
var app = NSApplication.SharedApplication; | var app = NSApplication.SharedApplication; | ||
app.ActivationPolicy = NSApplicationActivationPolicy.Accessory; | app.ActivationPolicy = NSApplicationActivationPolicy.Accessory; | ||
} | |||
} | |||
</source> | |||
上記の例ではAppDelegateのDidFinishLaunchingメソッドでドックアイコンを消しているがこれに限らず、たとえばNSApplicationのインスタンスを生成しているMainメソッドでいきなり叩いても動くようだ(NSApplication.Initメソッド呼び出し後であればどこでも良いようだ)。 | |||
<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(); | |||
} | } | ||
} | } | ||