NSTextField在方法结束前更新



事情是这样的:

我有一个标签(NSTextField),我想激活后,我点击一个按钮。这个标签将在程序加载一些波时出现(因为它通常在加载时产生轻微延迟)。然后我想要它消失一旦这发生了(和新的视图出现)。

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

当前我正在使用:

[label2 setHidden:NO];

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

谢谢堆! !

好吧,我想我自己解决了——我希望这能帮助到大家。

因此,当我单击按钮时,我禁用按钮并临时替换标签。然而,这只发生在下一个视图(所以我不确定如何使它发生在同一个视图)。我禁用按钮大约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];
}

最新更新