2013-06-12 4 views
1

У меня есть два UITextViews! Проблема в том, что я хочу, чтобы действие выполнялось при вводе одного из текстовых элементов, а не в другом! Я установил код действия вЕсть ли способ узнать, когда был введен определенный UITextView?

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

Но действие выполняется, когда вводится текстовое представление. Есть ли способ, который сообщает, когда используется определенный текстовый вид?

ответ

1

Вы можете сделать это двумя способами

первый

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 
{ 
    if (textView == YourTextView) 
    { 
      // ----- do here 
    } 
    return YES; 
} 

Во-вторых

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 
{ 
    if (yourTextView.tag == yourTag) 
    { 
      // ----- do here 
    } 
    return YES; 
} 
+1

Вы должны объяснить, что ваш первый подход должен удерживаемой ссылку на TextView. Кроме того, скобки ([textView == YourTextView]) ошибочны в обоих примерах. – tilo

+0

глупая ошибка дорогая .... –

+0

Работали как очарование ... первый ответ –

1

Вы можете установить tag вашего UITextView, чтобы отличить их.

// Somewhere in your code 
UITextView *firstTextView = // set up your text view 
firstTextView.tag = 0; 

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView { 
    // ... 
    if (textView.tag == 0) { 
     // firstTextView 
    } 
    // ... 
} 
1

Его для этой самой цели TextView передается в качестве аргумента функции делегата

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

Вы можете сохранить свойства для экземпляров TextView и внутри вызова делегата просто проверить, какой из TextView получил трогают.