我希望键盘在我的iphone应用程序中点击“提交”后立即消失,而不是等到功能完成。该函数需要很长时间,因为我正在执行同步HTTP请求。
为什么视图在整个功能完成之前不会更新?我在xcode的模拟器中工作。
-(IBAction)submit:(id)sender{
[myTitle resignFirstResponder];
...some ASIHTTP setup...
[request startSynchronous];
return;
}
答案 0 :(得分:1)
如果您想保留当前的同步HTTP请求,请进行以下更改:
-(IBAction)submit:(id)sender{
[myTitle resignFirstResponder];
[self performSelector:@selector(delayedSubmit:) withObject:sender afterDelay:0];
}
-(void)delayedSubmit:(id)sender {
...some ASIHTTP setup...
[request startSynchronous];
//return;
}
我评论了return;
,因为在不返回void
和IBAction
之类的方法中不需要void
(实际上是{{1}}但是让IB知道注意它。)
答案 1 :(得分:0)
它是如何在线程中执行代码的。代码的“块”全部在resignFirstResponder之前执行到最后:“激活”(真正完成其执行)。因此,您可以执行某些操作,例如延迟启动同步请求,或使其成为异步(因为您已经使用ASIHTTP,因此不太困难)。