2

我正在创建一个共享软件 Cocoa 应用程序,我想知道放入“nag screen”的最佳方式是什么。基本上在应用程序的主窗口显示之前,我想要一个带有一些文本的窗口、一个注册按钮和一个“Not Yet”按钮(最初是禁用的)。Not Yet 按钮上会有一个计时器,所以按钮标题会根据秒数改变,比如:

“还没有……10” “还没有……9”

等等,在 10 秒结束时,Not Yet 按钮将启用,允许用户继续并使用该应用程序。做这样的事情的最好方法是什么?我可以使用 NSAlert 吗?

我已经看到这在 Pacifist 中做得很好,任何帮助将不胜感激。谢谢

4

4 回答 4

8

可能不是你想听到的,但我不会那样做。当您评估软件时,没有什么比基于计时器的唠叨屏幕更烦人的了。

而且我的意思并不是像“它会给我一个购买您的软件的非唠叨版本”的理由那样令人讨厌。我的意思是像“我再也不会碰那个应用程序”那样烦人。

我已经为具有类似方法的会计师做过软件,当我给他们一个单独的版本时,他们只是在报告中飞溅了“评估副本”,他们非常高兴。

当被问到时,他们明确表示他们对这样的限制感到满意,甚至功能略有减少(比如只有 10 个客户端文件,而不是无限的),但 nag 屏幕在一开始就减慢了他们的速度,这给人留下了非常糟糕的印象软件。

如果您想给他们一个购买的理由,请从TechDirt的书中学习一下——免费提供一些东西(但不是令人讨厌的版本),然后让他们花时间购买稀缺的东西。为此,我不会将免费版本宣传为有限,而是专注于他们通过付费获得的额外功能。

这是基本的营销 101,与快餐店提供的产品regularlarge大小有关,而不是smalllarge:-)

通过向客户提供额外的付款而不是在他们不付款时拿走某些东西,您将从客户那里获得更多收益。

重要的是你对它的旋转,而不是实际的结果。

于 2009-09-19T01:26:11.703 回答
2

我个人只会在几天后让您的共享软件应用程序执行此操作,让他们在几天内“免费”评估它......但这只是我的意见!尝试这个:

将这些添加到界面中:

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]];
}

这样的事情会奏效。祝你好运!

于 2009-09-19T02:01:15.883 回答
0

一些 Mac 应用程序在主窗口的右上角使用微妙的“还剩 X 天”消息。最突出的例子是:

在这里您可以看到该方法的实际效果:Coda screenshot(看右上角)

这种方法摆脱了潜在买家的方式,但也提醒他购买你的产品。

于 2009-09-19T10:48:39.570 回答
0

我不喜欢它们,但这里是如何做到的:

创建一个警报视图,以及一个 NSTimer。然后当计时器到达 x 秒时,将按钮设置为活动状态(不完全确定如何执行此操作,但应该不会太难)。

于 2009-09-19T01:44:53.240 回答