textFieldShouldBeginEditing运行不满足条件的代码

时间:2012-12-13 05:42:39

标签: ios ruby uitextfield rubymotion

在我的RubyMotion控制器中,我有3个文本字段。最后一个,当被轻击时,在委托中运行方法didTapSomeField,它推动另一个控制器。此textField无法像其他2一样进行编辑。

问题:当我从nameField到emailAddressField的tab或者tabAddressField中的tab时,它会在委托didTapSomeField上运行该方法。我已经对我的第一个响应代码进行了三重检查,以及为什么如果textField不等于someField,为什么它仍然运行if语句中的内容?谢谢你的帮助!

#
# method. textFieldShouldReturn
#
def textFieldShouldReturn( textField )
#---------------------------------------

    if textField == self.nameField

      self.emailAddressField.becomeFirstResponder

    elsif textField == self.emailAddressField

      self.didTapDoneButton

    end

end


#
# method. textField shouldChangeCharactersInRange replacementString
#
def textField( textField, 
               shouldChangeCharactersInRange: range,
               replacementString: string )
#----------------------------------------------------

  if textField == self.nameField

      true

  elsif textField == self.emailAddressField

      true

  end

end


def textFieldShouldBeginEditing( textField )
#--------------------------------------------

  if ( textField == someField )

    self.delegate.didTapSomeField \
           if self.delegate.respond_to?( :didTapSomeField ) 

    false

  else

    true

  end

end


我也尝试过:

def textFieldShouldBeginEditing( textField )
#--------------------------------------------

  if ( textField == someField )
    self.delegate.didTapSomeField \
           if self.delegate.respond_to?( :didTapSomeField )             
    false

  end

  true

1 个答案:

答案 0 :(得分:0)

尝试使用public_send替换responde_to