2010-08-09 75 views
0

我希望當我在iphone應用程序中點擊「提交」時鍵盤就會消失,而不是等到函數完成。該函數需要很長時間,因爲我正在執行同步HTTP請求。只有在處理完成後纔會出現resignFirstResponder

在整個函數完成之前,視圖如何不更新?我正在xcode的模擬器中工作。

-(IBAction)submit:(id)sender{ 
    [myTitle resignFirstResponder]; 
    ...some ASIHTTP setup... 
    [request startSynchronous]; 
    return; 
} 

回答

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;因爲它不會在不喜歡voidIBAction返回任何方法需要(這是真的void,但讓IB知道要注意它)。

0

它是如何在線程中執行代碼。代碼中的「塊」在resignFirstResponder之前會被執行到最後:「激活」(真正完成其執行)。因此,您可以執行一些操作,例如延遲同步請求的開始時間,或者使其異步(因爲您已經使用ASIHTTP,所以不會太困難)。

+0

感謝您的解釋! – Jason 2010-08-11 13:28:14

相關問題