2

我目前正在将一个简单的托盘应用程序从 Windows(C#、.Net、Winforms)移植到 OS X(C#、MonoMac、Cocoa)。大部分工作已经完成,但我在 OS X 中遇到了一些问题,它相当于 Windows 托盘应用程序经常用来共享信息的气球工具提示: 气球工具提示示例

我没有经常使用 OS X,但我的印象是等价于通知: 通知示例

但我无法弄清楚如何从 MonoMac 使用它。在互联网上环顾四周时,我发现了一个叫做“咆哮通知”的东西,但这似乎是一个第三方库,我对此不感兴趣(如果可以避免的话)。MonoMac 框架中还有一个名为 NSNotification 的类,但同样,我无法使其工作。

有人对可怜的 Windows 程序员有一些提示吗?

4

1 回答 1

4

Mac 上的等价物是通知中心。这是在 OS 10.8 (Mountain Lion) 中引入的。

在引入通知中心之前,可以通过第三方库 Growl 添加此功能。Growl在很多情况下仍然适用,因为它比原生通知中心更实用。Growl 是用户必须购买和安装的付费插件。

NSNotification是 Mac API 的一部分,用于在对象和进程之间传递消息。这不是“用户”通知。这很令人困惑,因为 NSNotification 和 NSNotificationCenter 是这些旧 API 的名称;而您感兴趣的较新的“用户”通知 API 称为 NSUserNotification 和 NSUserNotificationCenter。

假设您的用户使用的是 10.8 / Mountain Lion,最好使用 OS X通知中心。似乎有一个例子证明了这一点。如果您必须支持早期版本,Growl 是一个不错的选择,但用户必须购买/安装它。否则,您可以自己开发一些东西。

另外一点是 Growl 确实与本地通知中心集成,因此它不一定是“非此即彼”的决定。这仅取决于您要支持的内容。

于 2013-03-11T13:05:16.613 回答