2010-07-05 65 views
0

我需要在用戶按任意鍵時從文本字段中獲取文本。我試圖使用通知UITextFieldTextDidChangeNotification獲取文本,但無法成功。有人可以請指導我如何從texfield獲取有關變化的文本。我有一個uitableview內的textfields。提前致謝。在uitexfield上更改文字

回答

0

最簡單的方法是使用AtomRiots answer。畢竟,從文本字段中獲取文本是文本字段委託的目的。您甚至可以爲表格中的每個文本字段設置不同的委託對象。

如果由於某種原因,你想要一個任意的對象來處理文本的變化,你可以註冊一個通知對象(self)。

如果你想監聽來自所有文本字段所有UITextFieldTextDidChangeNotification:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(handleTextDidChange:) 
              name:UITextFieldTextDidChangeNotification 
              object:nil]; 

如果你要聽所有通知特定字段

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(handleTextDidChange:) 
              name:UITextFieldTextDidChangeNotification 
              object:aPointerToATextFieldObj]; 
0

你可以使用

- (void)textFieldDidBeginEditing:(UITextField *)textField 

時,他們開始編輯,或者這

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 

爲他們每次敲擊鍵盤上的一個鍵,或

- (void)textFieldDidEndEditing:(UITextField *)textField 

何時textviews第一響應者被辭職。

您可以在填充tableview時通過分配標籤來跟蹤單個文本字段,然後您將知道哪個文本字段正在更改。

+0

哦,當然你需要擴展UITextFieldDelegate以收聽這些內容並設置文本字段的委託。 – AtomRiot 2010-07-05 14:00:44

+0

嗨原子,謝謝你的回覆。我在uitableview中有大約20個文本框,所以當用戶填充文本框並向下滾動時,先前的文本框被刪除,我不能獲取文本框,因爲我試圖從 - (void)textFieldDidEndEditing獲取文本:(UITextField * )文本域 – pankaj 2010-07-07 06:36:27