Приложение, которое работает в фоновом режиме и выдает ошибку пользователю .. (по запросу пользователя) - PullRequest
3 голосов
/ 22 сентября 2009

Мне нужно запустить программу, которая будет через заданный пользователем интервал времени открывать и выводить на передний план (желательно очень красивый) стиль, чтобы попросить пользователя заполнить некоторые детали. Я написал несколько нормальных приложений для какао, но, похоже, для этого нужны дополнительные знания, которых у меня нет (: С чего мне начать?

(И, прежде чем кто-то расстроится, я могу захотеть обидеть людей, цель приложения - создать версию OS / X того, что у нас есть на работе, которая позволяет пользователю запрашивать напоминание о необходимости заполнить свою временную карту / отчет в / на настраиваемый пользователем период времени)

Самое близкое, что я могу себе представить, это как рычание.

Ответы [ 2 ]

3 голосов
/ 23 сентября 2009

У вас есть несколько вариантов. Как сказал сморган, launchd очень хорошо для этого работает. Другой (относительно простой) вариант - добавить приложение в список элементов входа пользователя. Посмотрите этот вопрос StackOverflow , чтобы узнать, как это сделать. Я фактически использовал это в приложении для установки небольшого помощника, и он работает очень хорошо. Затем ваше приложение будет использовать что-то вроде NSTimer (или какой-либо другой вид уведомлений, в зависимости от вашего приложения), чтобы определить, когда показывать окно.

Если вы хотите, чтобы ваша программа была скрыта, за исключением случаев, когда окно является видимым, вы также можете рассмотреть возможность сделать его LSUIElement. По сути, вы добавляете клавишу LSUIElement в ваш файл Info.plist, и при запуске программы у нее не будет ни строки меню, ни значка закрепления. Пользователь увидит пользовательский интерфейс только тогда, когда вы действительно покажете свое окно.

Если вы объедините эти два параметра, у вас будет приложение, которое запускается при входе пользователя в систему (вы также можете запустить его вручную, если это необходимо) и отображает окно только тогда, когда вы этого хотите.

2 голосов
/ 22 сентября 2009

Предполагая, что вы можете настроить таргетинг на 10,5 и более поздние версии, launchd позволит вам легко периодически запускать ваше приложение. Тогда вы могли бы сделать приложение, которое получает информацию о пользователе, как обычно, не беспокоясь о том, чтобы оно работало самостоятельно.

Если вы нацеливаетесь на 10.4, не используйте для этого launchd, так как агенты запуска были очень неработоспособны до 10.5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...