点击UITextField时,键盘和光标都不会出现

时间:2014-02-17 11:26:18

标签: ios uitextfield

我正在Xcode 5.0.2上测试一个简单的应用程序。使用storyboard,我拖动了两个由segue连接的视图控制器。在第一个视图控制器上有一个按钮,按下该按钮后,下一个控制器出现,其中有两个文本字段。当我点击文本字段时,键盘没有显示,文本光标丢失。

textFieldViewController.h文件

@property (weak, nonatomic) IBOutlet UITextField *nameField;

@property (weak, nonatomic) IBOutlet UITextField *numberField;

- (IBAction)textFieldDoneEditing:(id)sender;


- (IBAction)backgroundTap:(id)sender;

textFieldViewController.m文件

 - (IBAction)textFieldDoneEditing:(id)sender {
    [sender resignFirstResponder];
}

- (IBAction)backgroundTap:(id)sender {
    [self.nameField resignFirstResponder];
    [self.numberField resignFirstResponder];
}

截图 enter image description here

4 个答案:

答案 0 :(得分:12)

由于模拟器设置,Xcode 6 / iOS 8也会发生这种情况:

Xcode 6: Keyboard does not show up in simulator

答案 1 :(得分:2)

确保UserInteraction UITextfield Enabled为{{1}}且您的文本字段中没有任何视图。

答案 2 :(得分:0)

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{//Text Field Delegate

     [textField resignFirstResponder];

    return TRUE;
}

可以尝试这个并使用storyboard

设置textFields委托

或使用

- (void)viewDidLoad
{
  nameField.delegate = self;
  numberField.delegate = self;
}

在textFieldViewController.h文件中

更改为@interface textFieldViewController : UIViewController <UITextFieldDelegate>

答案 3 :(得分:0)

我遇到过这个问题,在我的情况下,我有一个自定义视图,可以根据需要显示各种子视图。一切都很好,直到iOS 7.1发布。

所以我创建了一个UITextField,当(第一种情况)我的视图即将被添加为子视图时(第二种情况)视图被初始化(initWithFrame:方法)。我已经看到很多解决方案,其中响应链被修改或色调颜色改变。但在我的情况下,我通过这一件事得到了正常的行为:

我将UITextField的初始化代码放入lazy-getter并安排了此方法的延迟调用。

-(UITextField*)textField {
    if (!_tf) {
        _tf = [[UITextField alloc] initWithFrame:self.bounds]
        // (... more code to set up the text field ...)
        [self addSubview:_tf];
    }
    return _tf;
}

然后,(我已经覆盖了这个方法,所以我决定在这里调用它):

-(void)didMoveToSuperview {
    [super didMoveToSuperview];
    if (self.superview) {
        // (... other code ...)
        [self performSelector:@selector(textField) withObject:nil afterDelay:0.04];
    }
}

它对我有用。