NSTextField在方法结束之前更新

时间:2011-08-31 03:04:58

标签: objective-c hidden nstextfield

所以这是交易:

我点击按钮后要激活标签(NSTextField)。当程序加载某些wav时会出现此标签(因为它通常会产生较小的延迟)。然后我想要它一旦发生就消失了(并且出现了新的视图)。

现在,我遇到的问题是,当我尝试这个时,似乎没有发生这种更新。如果我不让它在最后消失,那么我可以看到它,但只有在延迟发生后(使它变得毫无意义)。

目前我正在使用:

[label2 setHidden:NO];

我知道一旦我调用它的方法完成(这是一个问题)就会发生这种情况。知道我可以做什么,以便在程序加载wavs时显示标签?

谢谢堆!

1 个答案:

答案 0 :(得分:0)

好吧,我想我自己解决了 - 我希望这对人们有所帮助。

因此,当我点击按钮时,我会禁用按钮并暂时更换标签。但是,这只发生在下一个视图中(所以我不确定如何在同一个视图中出现它)。 我禁用按钮大约1秒钟,这里显示标签。

以下是一些显示我的意思的代码:

- (IBAction)clickedTheButton:(id)sender {
    [button setEnabled:NO];
    [label2 setHidden:NO];
    ...
    //Changes the View
    [self nextMethod];
}

View现在已更改,接下来将调用此方法。这使我能够看到标签。

-(void)nextMethod{
    ...
    [self performSelector:@selector(delayedDisplay:) 
          withObject:@"Hi" 
          afterDelay:1.0]; //delay for 1 second
}

然后,此方法将它们恢复到原始状态(因此隐藏标签并再次激活按钮)

-(void) delayedDisplay:(NSString *)string{
    [button setEnabled:YES];
    [label2 setHidden:YES];
}