我目前正在将一个简单的托盘应用程序从Windows(C#,。Net,Winforms)移植到OS X(C#,MonoMac,Cocoa)。大部分工作已经完成,但我遇到了OS X等效于Windows托盘应用程序经常用来共享信息的气球工具提示的问题:
我没有非常使用OS X,但我认为等效的是通知:
但我无法弄清楚如何在MonoMac中使用它。在互联网上四处看看时,我发现了一个名为“低吼通知”的东西,但这似乎是第三方图书馆,我对此并不感兴趣(如果可以避免的话)。在MonoMac框架中还有一个名为NSNotification的类,但同样,我无法使其工作。
对于一个可怜的Windows程序员,有没有人有一些提示?
答案 0 :(得分:4)
Mac上的等价物是notification center。这是在OS 10.8(Mountain Lion)中引入的。
在引入通知中心之前,可以使用第三方库Growl添加此功能。 Growl在许多情况下仍然适用,因为它比本机通知中心更具功能性。 Growl是用户必须购买和安装的付费插件。
NSNotification是Mac API的一部分,用于在对象和进程之间传递消息。它不是“用户”通知。令人困惑的是因为NSNotification和NSNotificationCenter是这些旧API的名称;而您感兴趣的较新的“用户”通知API称为NSUserNotification和NSUserNotificationCenter。
假设您的用户在10.8 / Mountain Lion上,最好使用OS X notification center。似乎有一个example证明了这一点。如果您必须支持早期版本,Growl是一个不错的选择,但用户必须购买/安装它。否则,你可以自己开发一些东西。
另外一点是,Growl与原生通知中心进行integrate,因此不一定是'或/或'决定。这取决于你想要支持的内容。