菜鸟教程小白 发表于 2022-12-12 21:27:02

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


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

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

<p>我认为我可以使用:</p>

<pre><code>if ( &amp;&amp; (textField1 != touch.view))
   log( &#39;left textfield1&#39; )
end

if ( &amp;&amp; (textField2 != touch.view))
   log( &#39;left textfield2&#39; )

end
</code></pre>

<p>来自这个问题 <a href="https://stackoverflow.com/q/6369758/1327809" rel="noreferrer noopener nofollow">Detect UITextField Lost Focus</a>但没有这样的运气。我知道我正在使用 RubyMotion,所以存在一些差异。 </p>

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

<p>感谢您提供的任何帮助。</p>

<p>更新:我想我会使用这种方法:</p>

<pre><code>- (void)textFieldDidEndEditing:(UITextField *)textField
</code></pre>

<p>在 RubyMotion 中:
    def textFieldDidEndEditing( textField )</p>

<p>我使用 log() 确定这确实让我知道用户已从一个文本字段更改为下一个文本字段。我只需要做一些调整,以便我可以指定留下哪个文本字段。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您需要将每个文本字段的 <code>delegate</code> 设置为 ViewController 类,然后实现 <code>textFieldDidEndEditing</code> 方法。这是一个工作示例:</p>

<pre><code>class MyViewController &lt; UIViewController
attr_accessor :textField1, :textField2

def viewDidLoad

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

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

def textFieldDidEndEditing(textField)
    if textField == @textField1
      puts &#39;left textField1&#39;
    elsif textField == @textField2
      puts &#39;left textField2&#39;
    end
end
end
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 当用户将焦点从文本字段更改为另一个时调用方法(RubyMotion),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10923041/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10923041/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 当用户将焦点从文本字段更改为另一个时调用方法(RubyMotion)