2011-04-12 131 views
4

我有兩個用於用戶名和密碼的文本框和一個提交按鈕。當按下提交按鈕時,執行檢查以查看是否輸入了用戶名和密碼。如果沒有,則顯示警告消息,並且未輸入值的字段成爲第一響應者。becomeFirstResponder減速應用程序

-(IBAction)loginPressed:(id)sender { 


    if ([username.text length] == 0) 
    { 
     [self showAlert:@"Invalid Username/ Password"]; 
     [username becomeFirstResponder]; 
     return; 
    } 

    if ([password.text length] == 0) 
    { 
     [self showAlert:@"Invalid Username/ Password"]; 
     [password becomeFirstResponder]; 
     return; 
    } 
} 

我觀察到,點擊按鈕後,按鈕保持選定狀態約1.5秒,然後顯示警報。如果我註釋掉becomeFirstResponder方法,它可以毫無停頓地工作。不過,我需要becomeFirstResponder在那裏。我如何使用它來加快速度?

+1

可能很愚蠢的問題:如果您切換becomeFirstResponder和showAlert的順序會發生什麼? – 2011-04-12 06:22:29

+0

嘿,解決了它。現在很好地工作。謝謝。發佈它作爲答案。 – 2011-04-12 06:45:26

回答

5

切換becomeFirstResponder和showAlert的順序。

+1

我有同樣的問題沒有警報:(。大量延遲(幾秒!)來調用becomeFirstResponder。 – Adam 2011-10-19 12:21:18

+0

我也有同樣的問題,沒有警報 - 只是取消隱藏視圖/文本框,然後調用becomeFirstResponder。想法? – 2012-09-13 18:00:38

0

[self showAlert:@「Invalid Username/Password」];將需要一段時間。你不能說出那件事。

+0

但是根據OP,如果將becomeFirstResponder刪除,則不會有任何延遲,所以顯然,showAlert在這裏不是問題。 – 2011-04-12 06:21:43