我有一个奇怪的设置。
我有View
名为 View1 和ViewController
来电 viewController1
在IB
中, View1 是 ViewController1 的子项。
在 View1 中,我使用代码UITextField
创建并添加为子视图。
在我的Viewcontroller
中,我有viewController1 : UIViewController <UITextFieldDelegate>
现在..我想在 View1 中的文本字段获得键盘中的“完成”按钮时重新签名键盘,所以我有
- (BOOL)textFieldShouldReturn:(UITextField *)TEXTFIELD {
[TEXTFIELD resignFirstResponder];
}
现在的问题是,如何在我的视图中定义的TEXTFIELD(在我的视图控制器中定义)和我在视图中定义的文本字段之间建立连接?
我是否必须在interfaceBuilder中执行某些操作?
也许我完全不在这里......
一些提示非常感谢
答案 0 :(得分:14)
在上面的评论中,我认为你误解了textFieldShouldReturn方法。 UITextField *作为参数传递给此方法,以便委托可以查看要返回的字段,并决定是否允许它。在您的情况下,您只有一个文本字段,所以只需重新签名第一个响应者并返回YES(我的代码在下面)。
尝试在此textFieldShouldReturn函数上放置断点。它被叫了吗?
- (BOOL)textFieldShouldReturn:(UITextField*)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
答案 1 :(得分:7)
将文本字段的delegate属性连接到IB中的视图控制器(应该是该视图的文件所有者)。还要在视图控制器标题中注明您符合协议。
或者您可以在视图控制器的viewDidLoad方法中将texfield.delegate属性设置为self。