我有一个 IBAction,里面有一些简单的代码:
-(IBAction)change:(id)sender {
[textfield setHidden:NO];
[self dolengthyaction];
}
'textfield' 是 nib 文件中的 NSTextField,而 -'dolengthyaction' 是一个需要大约一分钟才能完成执行的函数。
我的问题是:为什么在执行“dolongyaction”之后才显示文本字段?我希望它在 dolongyaction 开始发生之前被揭露。这是一个固有问题还是我的代码有问题?(或在我的代码的另一部分?)
我仍然不是很擅长编程,所以如果我措辞不好并且格式错误,我深表歉意。
编辑:除了这个 IBAction 和 -dolongyaction 没有什么别的了...
-(void)doLengthyAction {
sleep(10);
}
-(IBAction)change:(id)sender {
[textfield setHidden:NO];
[self doLengthyAction];
[textfield setHidden:YES];
}
我真正想做的就是在动作运行时显示标签,并在动作完成时隐藏它。
基本上这意味着它现在根本没有显示。
实际上,在 -doLengthyAction 中,它不是 sleep(10),而是一个 NSFileManager 操作,它复制了大约 50 Mb 的材料。代码相当长,但如果你想让我发布它,我可以。我用 sleep() 对其进行了测试,但它也不起作用。