2012-01-15 95 views
0

我正在使用iOS 5上的故事板,并且有一个简单的屏幕,其上有一个UITextField。我想在用户点击“返回”时关闭键盘。我跟着其他建议,例如有我的控制器实现了UITextFieldDelegate协议并实现textFieldShouldReturn:如下:在UITextField中退出键盘

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [questionField resignFirstResponder]; 
    return YES; 
} 

但是我看到这个方法不会被调用。我将故事板中的视图控制器设置为我自定义的UIViewController

我也尝试了不同的实现方式,其中我创建一个名为IBActiondismissKeyboard奇怪我可以Did Exit动作无法连接到我UITextField

任何想法?

更新:所以问题似乎是我使用UITextView而不是UITextField。我想要一个大面积的文字输入。当我将输入字段更改为UITextField时,它工作正常。有关如何使它与UITextView一起工作的任何想法?

+2

有你'设置= questionField.delegate其中self''self'可能是控制器,你创建了你的'UItextField'?也尝试实现'textFieldDidEndEditing:'。只要编辑会话完成,就会调用此方法(例如,当用户关闭键盘时)。 – 2012-01-15 16:44:01

回答

0

您应该将dismiss方法连接到文本字段的Did End Editing操作。

+0

我试过这样做,但奇怪的是,当我选择行动uner'收到行动',并悬停在uitextfield它不会突出显示。 – imrank1 2012-01-16 05:13:22

0

因此,为UITextView退出键盘的解决方案是实现shouldChangeTextInRange。

0

如果你想在键盘驳回当轻敲了TextView的返回键使用该委托功能,

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 

    if([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 

    return YES; 
} 
+0

在这段代码中,当我们用2段粘贴文本时,它不会粘贴数据 – 2012-09-13 10:53:18