4

我有一个奇怪的设置。

我有一个ViewView1和一个ViewControllerviewController1

在中IBView1ViewController1的子项。

View1中,我使用代码 a 创建UITextField并添加为子视图。

在我的Viewcontroller,我有viewController1 : UIViewController <UITextFieldDelegate>

现在.. 当View1中的文本字段在键盘上获得“完成”按钮时,我想辞职键盘,所以我有

- (BOOL)textFieldShouldReturn:(UITextField *)TEXTFIELD {
    [TEXTFIELD resignFirstResponder];
}

现在的问题是,如何在 TEXTFIELD(在我的视图控制器中定义)和在我的视图中定义的文本字段之间建立连接?

我必须在 interfaceBuilder 中做些什么吗?

也许我完全不在这儿了……

一些提示非常感谢

4

2 回答 2

14

肯德尔是对的。您需要将 viewController1 设置为文本字段的代表。

在您上面的评论中,我认为您误解了 textFieldShouldReturn 方法。UITextField* 作为参数传入此方法,以便委托可以查看要返回的字段,并决定是否允许。在您的情况下,您只有一个文本字段,因此只需辞去第一响应者并返回 YES(我的代码如下)。

尝试在这个 textFieldShouldReturn 函数上放置一个断点。它被调用了吗?

- (BOOL)textFieldShouldReturn:(UITextField*)aTextField
{
    [aTextField resignFirstResponder];
    return YES;
}
于 2009-03-26T07:23:50.797 回答
7

将文本字段的委托属性连接到 IB 中的视图控制器(应该是该视图的文件所有者)。还要在视图控制器标头中注意您符合协议。

或者您可以在视图控制器的 viewDidLoad 方法中将 texfield.delegate 属性设置为 self。

于 2009-03-26T05:11:52.237 回答