在我的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
答案 0 :(得分:0)
尝试使用public_send替换responde_to