所以这是交易:
我点击按钮后要激活标签(NSTextField)。当程序加载某些wav时会出现此标签(因为它通常会产生较小的延迟)。然后我想要它一旦发生就消失了(并且出现了新的视图)。
现在,我遇到的问题是,当我尝试这个时,似乎没有发生这种更新。如果我不让它在最后消失,那么我可以看到它,但只有在延迟发生后(使它变得毫无意义)。
目前我正在使用:
[label2 setHidden:NO];
我知道一旦我调用它的方法完成(这是一个问题)就会发生这种情况。知道我可以做什么,以便在程序加载wavs时显示标签?
谢谢堆!
答案 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];
}