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];
}

}
Другие вопросы по тегам