Как отклонить клавиатуру и textFieldShouldReturn не вызывается
В принципе textFieldShouldReturn
не вызывается. Я видел много примеров использования.Xib, но это не совсем то же самое, что я использую раскадровки и новичка на ios.
Итак, у меня есть базовый вид контроллера с 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 что-то необходимое?
1 ответ
Я нашел ответ, и это легко, вам даже не нужно использовать протоколы и т. Д.!!
Поэтому все, что я сделал в коде (это обычный код, который вы найдете в Интернете), не будет работать в Xcode 5. Этот код не запускается.
Вместо того, чтобы использовать метод обратного вызова, если пользователь щелкает текстовое поле, вам вообще не нужно использовать UITextFieldDelegatw.
Вместо этого внутри вашего контроллера создайте IBAction, например:
-(IBAction)textFieldReturn:(id)sender
{
NSLog(@"text field Return");
}
Затем внутри StoryBoard Выберите "Инспектор соединений" и выберите TextField, которому вы хотите назначить этот элемент управления.
Затем в Special Event перетащите "TouchDown" в текстовое поле и выберите метод, который вы только что создали. В случае выше вам будет представлен вариант textFieldReturn.
И это все.
Теперь, когда вы запустите приложение, когда вы установите этот флажок, вы получите ответный звонок.