Cocoa touch 只有在处理完成后,才会发生辞职FirstResponder
我希望在我的iphone应用程序中点击“提交”时键盘立即消失,而不是等到功能完成。该函数需要很长时间,因为我正在执行同步HTTP请求 为什么视图直到整个函数完成才更新?我在xcode的模拟器里工作Cocoa touch 只有在处理完成后,才会发生辞职FirstResponder,cocoa-touch,xcode,iphone-sdk-3.0,Cocoa Touch,Xcode,Iphone Sdk 3.0,我希望在我的iphone应用程序中点击“提交”时键盘立即消失,而不是等到功能完成。该函数需要很长时间,因为我正在执行同步HTTP请求 为什么视图直到整个函数完成才更新?我在xcode的模拟器里工作 -(IBAction)submit:(id)sender{ [myTitle resignFirstResponder]; ...some ASIHTTP setup... [request startSynchronous]; return; } 这是代码在线程中执
-(IBAction)submit:(id)sender{
[myTitle resignFirstResponder];
...some ASIHTTP setup...
[request startSynchronous];
return;
}
这是代码在线程中执行的方式。所有代码的“块”都会在辞职FirstResponder:“激活”(真正完成其执行)之前执行到底。因此,您可以延迟同步请求的启动,或者使其异步(因为您已经在使用ASITP,所以不太困难)。如果要保持当前的同步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
和iAction
的任何内容的方法中不需要它(这实际上是void
,但让IB知道要注意它)