2010-09-19 18 views
6

Istnieją dwa różne pola tekstowe w moich aplikacjach i ustawię właściwość .delegate dla obu z nich na: self. Teraz zaimplementowałem różne metody z protokołu uitextfielddelegate, ale chcę mieć możliwość kontrolowania dwóch pól tekstowych indywidualnie. Na przykład chcę, aby pierwsze pole tekstowe robiło coś innego podczas edycji zaczyna się od drugiego pola tekstowego ... Czy jedynym rozwiązaniem tego problemu jest ustawienie przypisania innego uczestnika lub czy istnieje sposób, aby to zrobić, gdy oba pola tekstowe mają ten sam delegat przypisany do nich? Mam nadzieję, że moje pytanie jest zrozumiałe, próbowałem wyjaśnić, w jaki sposób mogę ..... z góry dzięki!iphone: uitextfield, wiele textfields z tym samym delegatem?

Odpowiedz

7

Set tag w polu tekstowym na inicjalizacji, a następnie zaznacz obiekt UITextField, który jest przekazywany do metody delegata tag, wtedy będziesz w stanie dokonać rozróżnienia między dwiema pól tekstowych:

#define FIELD_ONE_TAG 1 
#define FIELD_TWO_TAG 2 

UITextField *textFieldOne = ... 
textFieldOne.tag = FIELD_ONE_TAG; 
... 
UITextField *textFieldTwo = ... 
textFieldTwo.tag = FIELD_TWO_TAG; 


- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    if(textField.tag == FIELD_ONE_TAG) { //field one 
    } else {//field two 

    } 
} 
7
UITextField *textFieldOne=..... 

UITextField *textFieldTwo=.... 
- (void)textFieldDidBeginEditing:(UITextField *)textField { 
if(textField == textFieldOne) 
{ // field one code 
}else{ 
//field two code 
} 
} 

mają dwie referencje wstawionych widoków tekstowych i możesz je porównywać metodami delegowanymi. Niezbyt potrzebne z tagami

Powiązane problemy