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