我曾经使用 XCode 开发我的应用程序并使用它;我可以在综合了这些方法的 IB/Storyboard 中创建一个链接:
- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents
什么时候
但是,不,我是以编程方式完成的(在 rubymotion 中,虽然不一定相关)并查看 UITextField 的文档,我发现了一些委托(delegate)方法,我按如下方式实现:
def textFieldShouldReturn(text_field)
text_field.resignFirstResponder
end
def textFieldShouldEndEditing(text_field)
# this is for validations; don't set a first responder here
true
end
def textFieldDidEndEditing(text_field)
text_field == @email_field ? @password_field.becomeFirstResponder : delegate.validate_login_info
end
但是使用这个,我发现我无法像以前使用 addTarget 方法那样在输入字段(我有两个;电子邮件和密码)之间切换。
这两种方法有什么区别?前者是否在幕后实现后者?我不明白为什么一个允许我跳转而另一个不允许。我只是以不同于目标/操作方法在幕后执行的方式实现委托(delegate)方法吗?
感谢反馈, 八春
最佳答案
这与目标/ Action 无关。我假设您的意思是在 Interface Builder 中,您将从 UITextField
拖动到 File's Owner
并从 HUD 中选择委托(delegate)。
执行上述操作会产生分配 textField 委托(delegate)的效果,您需要在这样的代码中执行此操作
@email_field.delegate = self
@password_field.delegate = self
上面假设创建 UITextField
的类将充当它们的委托(delegate)。
关于ios - UITextField 目标/ Action 与委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10677474/