gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:49:46 26 4
gpt4 key购买 nike

我正在使用 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)textFieldDidEndEditing:(UITextField *)textField

在 RubyMotion 中: def textFieldDidEndEditing( 文本字段 )

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

最佳答案

您需要将每个文本字段的委托(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com