2012-11-06 38 views
1

我有一个UIViewController,并在其上创建了一个小的UIView(子视图)。当我点击一个按钮时,这个视图悬停在屏幕的中心。问题是我得到UITextField在额外的UIView,我似乎无法得到返回键工作。子视图上的UITextField返回键

虽然我将我的IBAction设置为文本字段的“编辑结束”事件,但当单击返回键时,IBAction未运行。

我在做什么错?

+0

你能显示一些代码吗?您是否已**将文本字段委派给文件所有者? – esh

回答

0

您只需设置您的代理,例如: - yourtextfile.delegate=self;,也不要忘了在添加委托方法.h文件中

@interface contacts_detailView : UIViewController<UITextFieldDelegate>

,然后委派textFieldDidEndEditing

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
//your new view apear code here 
    [textField resignFirstResponder]; 
} 
0

确保UITextFieldDelegate在接口

+0

我已在接口上有。虽然我不确定这是必须的。总之,它没有解决问题 –

+0

添加代表到您的文本域 textfiled.delegate = self –

0

点击“Return”不会触发“Editing did end”事件。只有当您在UITextField上调用resignFirstResponder时,才会看到事件触发。

你应该做的是设置你的UIViewController为的UITextField的代表和实现方法

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

最后!非常感谢!我不知道为什么其他人不工作,但这一个确实如此。我很肯定我曾经看到一次,将“IBAction”附加到“End Editing”事件中,但我会检查那一个。再次感谢。 –

+0

如果我的回答对您有帮助,请考虑将其标记为正确答案。 –

0

首先,委托这样的TextField对文件的所有者:

yourtextField.delegate = self在viewDidLoad中。

,然后添加到这个视图控制器

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

它应该工作。

0

没有必要为关键板返回编写更多代码。请将它写入您的.m文件中,它可以用于任意数量的文本字段,不需要再次为不同的文本字段再次写入。

在你的.h文件中使用<UItextfieldDelegate>。然后在nib文件中与fileowner进行连线。

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
    { 
    [self.view endEditing:YES]; 
    return YES; 
    } 
相关问题