2013-11-06 5 views
0

В основном textFieldShouldReturn не получает вызов. Я видел много примеров с использованием .Xib, но это не совсем то же самое, что я использую раскадровки и новички на ios.как убрать клавиатуру и текстFieldShouldReturn не получится вызвано

Итак, у меня есть базовый контроллер вида с 1 текстовым полем.

ViewController, как:

@interface ViewController: UIViewController <UITextFieldDelegate> 
@property (weak,nonatomic) IBOutlet UITextField *test; 
@end 

Так я использую UITextFieldProtocol.

Затем в файле .m У меня есть

@synthesize test; 

и внутри viewDidLoad У меня есть

self.test.delegate = self; 

Тогда я реализовал метод:

-(BOOL) textFieldShouldReturn:(UITextField *) textField{ 
NSLog(@" I am being called"); 
return YES; 
} 

Так что этот метод не вызывается, когда я нажимаю на текстовое поле, несмотря на то, что оно задано как делегат.

Есть ли что-то в раскадровке Xcode 5, которая требуется?

+3

Этот метод вызывается, когда текстовое поле имеет фокус, а затем нажмите кнопку возврата (или любую другую метку) на клавиатуре. – rmaddy

+0

Вы можете выбрать UITextField в раскадровке и ctrl + перетащить соединение с UIViewController, чтобы установить делегат для UITextField. Кроме того, вы можете удалить @synthesize, поскольку свойства теперь автоматически синтезируются (при определенных обстоятельствах). – Jonathan

ответ

-2

Я нашел ответ и его легко вам не нужно даже использовать протоколы и т. Д. !!

Так что все, что я сделал в коде (это обычный код, который вы найдете в Интернете), не будет работать на Xcode 5. Этот код не запускается.

Вместо того чтобы вы хотите иметь метод обратного вызова, если пользователь нажимает на текстовое поле, вам совсем не нужно использовать UITextFieldDelegatw.

Вместо внутри ваш контроллер создать IBAction как:

-(IBAction)textFieldReturn:(id)sender 
{ 
    NSLog(@"text field Return"); 


} 

Затем внутри StoryBoard Выберите вкладку «Connections Inspector» и выберите TextField, который вы хотите назначить этот CONTROLL к.

Затем в специальном событии перетащите «TouchDown» в текстовое поле и выберите метод, который вы только что создали. В приведенном выше примере вам будет представлен параметр textFieldReturn.

И вот оно.

Теперь, когда вы запускаете приложение, когда вы выбираете этот флажок, вы получите обратный вызов.

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

  • Нет связанных вопросов^_^