2012-02-03 1 views
0

У меня есть ViewController с этим:Программным отклоняя TextField клавиатура с делегатом

@interface RootViewController : UIViewController <UITextFieldDelegate>{

Тогда У меня есть текстовое поле добавляется программно, как это в viewController.m:

UITextField*textFieldRounded=[[UITextField alloc] initWithFrame:frame]; 
textFieldRounded.delegate = self; 

В то же .m я пробовал все из них:

- (void)textFieldDidEndEditing:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
NSLog(@"returned?"); 
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 
NSLog(@"returned?"); 
return YES; 
} 

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
NSLog(@"returned?"); 
    return YES; 

} 

Клавиатура кажется прекрасной, когда я нажимаю текстовое поле, которое находится в подпункте viewController. но нажатие кнопки «Готово» ничего не делает. Операторы NSLog никогда не появляются, поэтому эти методы никогда не вызываются. Есть идеи?

ответ

1

У меня едва ли был этот вопрос, может быть, но то, что я сделал, было прикреплено объектом распознавания жестов к представлению, созданным методом экземпляра, называемым понятной клавиатурой :, и внутри функции, которую я положил [whateverItIsThatOpenedTheKeyboard resignFirstResponder]; вот и все. Возможно, вы спрашиваете что-то совершенно другое, но я думал, что попробую и помогу :)

+0

спасибо, я видел ваши рекомендации в других местах тоже. стоит попробовать. – johnbakers

+0

@andrewx вы видели мою рекомендацию? – SampsonStudiosLLC

+0

Я имел в виду, что видел технику, о которой вы упоминаете здесь, в других местах, но вряд ли вам. – johnbakers

0

Объявить UITextField в файле .h как IBOutlet с свойством и синтезировать его в .m файле.

+0

использовать IBOutlet, даже если нет конструктора интерфейса? – johnbakers

+0

да, вы должны в случае, если нет интерфейса builder.check эта ссылка http://www.switchonthecode.com/tutorials/an-absolute-beginners-guide-to-iphone-development –

+0

IBOutlet бессмысленна, если вы не используете IB, его просто флаг, чтобы IB мог выбирать, какие свойства он может отображать, но использование свойств может быть решением – wattson12

0

Используйте этот метод делегата

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

Добавить этот метод делегата в код и запустить приложение еще раз ..

Смежные вопросы