2012-12-18 94 views
2

textFieldDidBeginEditing和textFieldShouldBeginEditing的區別是什麼?我想知道我們在哪種情況下使用它們(我知道當我們將任何東西輸入到文本字段時會調用它們,我想知道在我們的程序中同時使用它們的確切時間)textFieldDidBeginEditing和textFieldShouldBeginEditing的區別是什麼

+1

您需要哪些信息不在參考文檔中的這兩種方法的描述中? – rmaddy

+0

@rmaddy Ofcourse它在那裏我說我想要更清晰他們和他們之間的差異 – pradeep

+0

不,你沒有說你想要「更清晰」。這兩個詞都不是你的問題。正如所寫的,你的問題表明你甚至沒有閱讀過文檔。如果您閱讀這兩種方法的文檔,您所問的問題將得到解答。如果您有更具體的問題在文檔中不明確,那麼請提出更具體的問題。文檔告訴你的差異。文檔告訴你他們何時被調用。 – rmaddy

回答

7

一個「shouldBegin」的東西允許你對返回值表示否,以禁止該行爲。

「didBegin」有事說它剛剛開始發生,你需要在那個時間點採取你需要做的任何動作。

1

A textFieldShouldBeginEditing方法請求代理的權限,以允許在用戶敲擊它時允許編輯textField。

另一方面,當textField開始編輯內容時(即在textFieldShouldBeginEditing之後,如果允許),將調用textFieldDidBeginEditing

0

例如:你想使一個不可編輯的文本字段,所以你返回NO:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    return NO; 
} 

關於textFieldDidBeginEditing:

討論 此方法通知委託指定的文本字段剛成爲第一響應者。您可以使用此方法更新您的委託狀態信息。例如,您可以使用此方法顯示在編輯時應該可見的重疊視圖。

所以我們可以說,你有一個文本字段子類(和你希望它是可編輯),雖然用戶編輯內容的變化的圖形(例如:它要顯示在用戶類型不同的對焦環),所以你用它來做這些事情。

相關問題