Создание экрана ворчания для приложения Cocoa
-
11-09-2019 - |
Вопрос
Я создаю условно-бесплатное приложение Cocoa и хотел знать, как лучше всего включить «экран ворчания».По сути, перед тем, как появится главное окно приложения, я хочу иметь окно с текстом, кнопку регистрации и кнопку «Еще нет» (которая сначала отключена).На кнопке «Еще нет» будет таймер, поэтому заголовок кнопки будет меняться в зависимости от количества секунд, например:
"Пока нет ... 10" "еще не ... 9"
и т. д.и по истечении 10 секунд кнопка «Еще нет» станет активной, что позволит пользователю продолжить и использовать приложение.Как лучше всего сделать что-то подобное?Могу ли я использовать NSAlert?
Я видел, как это хорошо сделано в Pacifist, любая помощь будет оценена по достоинству.Спасибо
Решение
Лично я бы хотел, чтобы ваше условно-бесплатное приложение сделало это только через несколько дней, чтобы они оценили его в течение пары дней «без ворчания»…Но это только мое мнение!Попробуй это:
добавьте их в интерфейс:
IBOutlet NSTextField *countdownLabel;
IBOutlet NSButton *continueButton;
NSTimer *timer;
.м:
- (id)init{
self = [super init];
[countdownLabel setStringValue:[NSString stringWithFormat:@"%d",10]];
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(nagTimer:) userInfo:nil repeats:YES];
return self;
}
- (void)nagTimer:(id)sender{
if ([countdownLabel intValue] == 0){
[timer invalidate];
[continueButton setEnabled:YES];
return;
}
[countdownLabel setStringValue:[NSString stringWithFormat:@"%d",[countdownLabel intValue] - 1]];
}
Что-то вроде этого сработает.Удачи!
Другие советы
Возможно, это не то, что вы хотите услышать, но я бы так не делал.Нет ничего более раздражающего, чем экран ворчания по таймеру, когда вы оцениваете программное обеспечение.
И я не имею в виду раздражение, например, «это даст мне повод купить ненужную версию вашего программного обеспечения».Я имею в виду раздражение, например: «Я никогда больше не прикоснусь к этому приложению».
Я уже создавал программное обеспечение для бухгалтеров, в котором применялся аналогичный подход, и когда я дал им отдельную версию, в которой в отчетах просто было написано «Оценочная копия», они были очень довольны.
В ходе опроса они дали понять, что их устраивает такое ограничение или даже немного урезанная функциональность (например, всего 10 клиентских файлов вместо неограниченного количества), но ворчащий экран вначале замедлял их работу, и это производило очень плохое впечатление о программное обеспечение.
Если вы хотите дать им повод для покупки, возьмите листок из книги TechDirt - предложить что-то бесплатно (но нет раздражающая версия), а затем оправдать покупку чего-то дефицитного.С этой целью я бы не рекламировал бесплатную версию как ограниченную, а скорее сосредоточился бы на дополнительных функциях, которые они получат за плату.
Это базовый маркетинг 101 в сфере ресторанов быстрого питания, предлагающих regular
и large
размеры, а не small
и large
:-)
Вы получите больше от клиента, предложив ему что-то дополнительно за оплату вместо того, чтобы забрать что-то, если он не заплатит.
Важно то, как вы это придадите, а не фактический результат.
Мне они не нравятся, но вот как это сделать:
Создайте представление оповещений, а также NSTimer.Затем, когда таймер достигнет x секунд, установите кнопку в активное состояние (не совсем понимаю, как это сделать, но это не должно быть слишком сложно).
Некоторые приложения Mac используют незаметное сообщение «Осталось X дней» в правом верхнем углу главного окна.Наиболее яркими примерами являются:
Здесь вы можете увидеть этот метод в действии: Скриншот кода (посмотрите вверху справа)
Такой подход уводит потенциального покупателя с пути, но также напоминает ему о покупке вашего продукта.