我有一个不应该在Dock上显示的Mono应用程序,但偶尔会显示一个窗口。我不希望菜单栏或停靠栏图标显示此应用程序。我的应用程序包含在应用程序包中,而我的info.plist文件将LSUIElement设置为“1”。这似乎并没有将我的应用程序隐藏在Dock中。
我还尝试在Process.Start中使用以下信息调用osascript: osascript -e'告诉应用程序“系统事件”将进程“myapp”的可见性设置为false'
这将返回系统事件错误代码:-10006。到目前为止,我没有找到这意味着什么。
我还在Mono中尝试了所有标准的Hide()和Visibility = false内容。
任何人都为此找到了解决方法,或者知道我可以查看的方向?在大多数情况下,在Mono工作是直截了当的.Net编码,但这让我很难过。
答案 0 :(得分:1)
嗯,经过相当多的工作后,我想出了一个更好的方法。我正在生成一个针对OSX的Silverlight + mono应用程序。我需要从同一个按钮按下启动。
使用Silverlight OOB安装过程创建的bundle中的bash脚本命令解决它,并使用一些rsync命令简单地分发创建的bundle。
启动服务器位的行(使用Mono的macpack工具创建): 打开MyApp.app&
然后通常启动Silverlight OOB应用程序的行: ./Silverlight $ @&>的/ dev / null的
'$ @'位将所有初始参数传递到OOB应用程序中的Silverlight可执行文件中。意味着您必须使用Info.plist才能启动自己的启动器,因此您的“Silverlight”可执行文件不会被Silverlight更新覆盖,但似乎运行良好。
答案 1 :(得分:0)
您正在寻找:http://uselessthingies.wordpress.com/2008/05/18/an-app-without-dock-icon-and-menu-bar/
tl; dr:打包您的.app,并在您的应用的Info.plist中添加<key>LSUIElement</key><string>1</string>
。