UITextField - не может вводить текст. Клавиатура не отвечает
У меня есть UIViewController с UITextField в нем.
#import <UIKit/UIKit.h>
@interface TextMemoViewController : UIViewController<UITextFieldDelegate>
@property (unsafe_unretained, nonatomic) IBOutlet UITextField *textMemo;
@end
В реализации код следующий:
#import "TextMemoViewController.h"
@implementation TextMemoViewController
@synthesize textMemo;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.textMemo.delegate = self;
}
//.....
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
Проблема в том, что когда я нажимаю на textField - появляется клавиатура, но на ней ничего не нажимается. Все симулятор зависает. Ввод текста невозможен при таком поведении.
У меня есть пара некоторых UIViewControllers с textFields и все в порядке. Но здесь я не могу найти причину, почему это происходит. Я очистил DerivedData в Xcode, перезапустил все симуляторы и сбросил настройки для них. Та же ситуация на iphone. У кого-нибудь есть идеи?
3 ответа
Лучше поздно, чем никогда:)
Спасибо всем, но, как я обнаружил давным-давно, проблема была в том, что респондент НЕ смирился с некоторыми предыдущими взглядами. В этом случае вид был закрыт другим, но респондент не изменился.
Может быть, кто-то найдет это полезным.
Пожалуйста, проверьте ваш UIAlertView
делегировать.
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// DO NOT Create Other UIAlertView.
}
Я думаю, что это ошибка, на iOS 5.1.
Я думаю, вам нужно изменить:
@property (unsafe_unretained, nonatomic) IBOutlet UITextField *textMemo;
чтобы:
@property (strong, nonatomic) IBOutlet UITextField *textMemo;
Разница в том, strong
вместо unsafe_unretained
, Я считаю, что ваша точка зрения не поддерживается, и поэтому вы не можете с ней взаимодействовать.
//make sure you use this delegate and add all your textfields..
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch* touch = [[event allTouches] anyObject];
// NSLog(@"Touches began called.");
//fill these in with all your textfields..
if([UserFirstName isFirstResponder] && [touch view] != UserFirstName){
[UserFirstName resignFirstResponder];
}
}