2013-03-08 2 views
2

В настоящее время я переношу приложение с обычным лотком из Windows (C#, .Net, Winforms) в OS X (C#, MonoMac, Cocoa). Большая часть работы сделано, но у меня возникают некоторые проблемы с OS X эквивалентом аэростата подсказки, что приложения лотка для Windows часто используют для обмена информации: Balloon tooltip exampleИспользование уведомлений Mac с Monomac

Я не использовал OS X очень много, но У меня создается впечатление, что эквивалент - это сообщение: Notification example

Но я не могу понять, как это использовать у MonoMac. Когда я смотрю в Интернете, я нахожу что-то, называемое «Growl notifications», но это похоже на стороннюю библиотеку, которой меня не интересует (если ее можно избежать). Существует также класс NSNotification в рамках MonoMac, но опять же, я не могу заставить его работать.

Есть ли у кого-нибудь подсказки для плохого программиста Windows?

+0

Пойдите с Growl, это потрясающе и наиболее часто используется для OSX (насколько я знаю). –

+0

Но нужен ли пользователь для установки Growl (и даже для его покупки?)? Мне не нравится звук этого. Неужели нет простого родного (ну, «Моно-родного», то есть) способа сделать это? Я имею в виду, что это трехстрочный шрифт в Windows, ему не должно быть намного сложнее OS X? –

+0

Кажется, есть встроенное «приложение», называемое Notification Center, которое вы можете использовать для этого, но только для пользователей, у которых есть Lion или выше (так что это исключило бы немало пользователей). –

ответ

4

Эквивалент на Mac - notification center. Это было введено в OS 10.8 (Mountain Lion).

Перед тем, как был введен центр уведомлений, эта функциональность может быть добавлена ​​в стороннюю библиотеку Growl. Growl по-прежнему применяется во многих случаях, поскольку он более функциональен, чем собственный центр уведомлений. Growl - платная надстройка, которую пользователи должны покупать и устанавливать.

NSNotification является частью API Mac, который используется для передачи сообщений между объектами и процессами. Это не уведомление пользователя. Это запутанно, потому что NSNotification и NSNotificationCenter являются именами этих более старых API; в то время как новые API-интерфейсы уведомлений пользователя, которые вас интересуют, называются NSUserNotification и NSUserNotificationCenter.

Предполагая, что ваши пользователи находятся на 10.8/Mountain Lion, лучше всего использовать OS X notification center. Кажется, что это показывает example. Если вы должны поддерживать более ранние версии, Growl - хороший вариант, но пользователям придется приобретать/устанавливать его. В противном случае вы могли бы что-то развить.

Еще один момент заключается в том, что Growl делает integrate с родным центром уведомлений, поэтому это необязательно является решением «либо/или». Это зависит от того, что вы хотите поддержать.

+2

«В противном случае вы могли бы что-то разработать самостоятельно», пожалуйста, не надо.Существует причина, по которой Growl является вездесущим, а именно, что появляются уведомления и действуют предсказуемо и последовательно - это потрясающе. – millimoose

+0

Спасибо, это очищает много моих вопросов! Но что произойдет, если я решит использовать Growl, и пользователь не хочет устанавливать Growl? Мое приложение не будет запущено вообще, или пользователь не получит никаких уведомлений? –

+0

@ErlendD. Пользователь просто не получит никаких уведомлений – TheNextman

Смежные вопросы