• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 当用户将焦点从文本字段更改为另一个时调用方法(RubyMotion)

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:27:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 RubyMotion(之前一直在 Xcode 中编写 Obj C,但现在由于 Ruby 中的 bkgd,我正在与想要使用 RubyMotion 的人合作)

我有一个带有 2 个文本字段的 ViewController。我需要它,以便当用户从 textfield1 切换到 textfield2 时,如果不满足 textfield1 的条件,则会显示错误标签(为此我使用 self.ErrorLabel.show)。我知道如何编写条件语句,但我真的不知道如何知道用户何时切换到下一个文本字段。

我认为我可以使用:

if ([textField1 isFirstResponder] && (textField1 != touch.view))
     log( 'left textfield1' )
end

if ([textField2 isFirstResponder] && (textField2 != touch.view))
     log( 'left textfield2' )

end

来自这个问题 Detect UITextField Lost Focus但没有这样的运气。我知道我正在使用 RubyMotion,所以存在一些差异。

如何让它工作?我认为我没有使用正确的关键字进行搜索,因为它似乎是开发人员一直在使用的东西,但我没有找到任何结果。

感谢您提供的任何帮助。

更新:我想我会使用这种方法:

- (void)textFieldDidEndEditingUITextField *)textField

在 RubyMotion 中: def textFieldDidEndEditing( textField )

我使用 log() 确定这确实让我知道用户已从一个文本字段更改为下一个文本字段。我只需要做一些调整,以便我可以指定留下哪个文本字段。



Best Answer-推荐答案


您需要将每个文本字段的 delegate 设置为 View Controller 类,然后实现 textFieldDidEndEditing 方法。这是一个工作示例:

class MyViewController < UIViewController
  attr_accessor :textField1, :textField2

  def viewDidLoad

    @textField1 = UITextField.alloc.initWithFrame([[10, 100], [300, 40]])
    # Customize your text field...
    @textField2 = UITextField.alloc.initWithFrame([[10, 150], [300, 40]])
    # Customize your text field...
    view.addSubview(@textField1)
    view.addSubview(@textField2)

    @textField1.delegate = self
    @textField2.delegate = self
  end

  def textFieldDidEndEditing(textField)
    if textField == @textField1
      puts 'left textField1'
    elsif textField == @textField2
      puts 'left textField2'
    end
  end
end

关于ios - 当用户将焦点从文本字段更改为另一个时调用方法(RubyMotion),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923041/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap