ios - UITextField 目标/ Action 与委托(delegate)方法

标签 ios delegates uitextfield target-action rubymotion

我曾经使用 XCode 开发我的应用程序并使用它;我可以在综合了这些方法的 IB/Storyboard 中创建一个链接:

- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents

什么时候

但是,不,我是以编程方式完成的(在 ruby​​motion 中,虽然不一定相关)并查看 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/

相关文章:

objective-c - 显示/隐藏密码切换。错误还是功能?

c# - 这是什么代码 : Func < T, string > 我不明白

c# - Delegate.Combine 和 lambda 表达式

c# - 在 Monotouch 中子类化和覆盖 UITextField

ios - 如何在 ios 中向 soap webservice 发送请求?

objective-c - 使用 objective-c 中的类别私下扩展协议(protocol)

ios - 在 UITextField 中粘贴文本时的奇怪行为

ios - 如何为 setImage() 添加两个图像状态

ios - 我可以在 Apple Watch 上显示 iOS 图表 (MPAndroidChart) 吗?

android - 如何将 Flutter 应用程序的构建过程与 Rust 代码集成?即在构建 Flutter 代码时,如何自动构建其 Rust 代码?