2011-02-07 7 views
4

Я немного добавляю текстовые поля в TableView, когда строки создаются. Я пытаюсь подписаться на событие TouchUpInside этих TextFields делая этоПрограммно создавать события UITextField

UITextField *eTextField = [[UITextField alloc] initWithFrame:CGRectMake(110, 12, 145, 25)]; 
eTextField.delegate = self; 
[eTextField addTarget:self action:@selector(showPicker) 
forControlEvents:UIControlEventTouchUpInside]; 

showPicker является IBAction, не parameters.It никогда не увольняют. Есть ли что-то, что мне еще нужно?

Есть ли что-то, что мне не хватает? Заранее спасибо

ответ

1

Если вы пытаетесь отобразить сборщик для текстового поля вместо клавиатуры, вы должны назначить представление выбора сборщика как текстовое поле inputView.

Но если вы хотите, чтобы огонь какой-то метод, когда пользователь прикасается текстовое поле, вы должны переопределить текстовый метод поля делегата

textFieldDidBeginEditing

и вызвать отставку первый ответчик, чтобы избежать клавиатуры , а затем напишите свои собственные вызовы кода или метода.

+0

я создал отдельный вид с помощью кнопки «Готово» для выбора режима просмотра и анимировать отображение и скрытие. Ваша идея использования 'inputView' кажется более простой, но как я могу заставить InputView (теперь aPicker) отклоняться? Сделать это 'hidden = YES' заставляет его исчезать навсегда. – irco

+0

, когда текстовое поле не является первым ответчиком, представление ввода отклоняется .. поэтому просто вызовите 'resignFirstResponder' в текстовое поле в действии вашей кнопки. – lukya

0

Вы можете попробовать это ...

textFieldDidEndEditing 1.Override в файле viewController.m. См пример кода ниже:

-(BOOL)textFieldDidEndEditing:(UITextField*) tf{ 
//your piece of code (goNext?) 
} 

2.Remove

[eTextField addTarget:self action:@selector(goNext) forControlEvents:UIControlEventEventEditingDidEnd]; 

из вашего кода.

3

Если это не будет [eTextField addTarget: само действие: @selector (showPicker * : *) Кроме того, вы не назначить UIControlEvent.

Итак:

[eTextField addTarget:self action:@selector(showPicker) 

Если, вероятно, будет изменен, чтобы

[eTextField addTarget:self action:@selector(showPicker:) forControlEvents:UIControlEventEditingDidBegin];