事情是这样的:
我有一个标签(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];
}