我想限制文本字段中的用户选项,只键入小于59的数字。
我的代码只能在1个文本字段中完美运行:
func textField(textField: UITextField,
shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
var startString = ""
if (minutesTF.text != nil)
{
startString += minutesTF.text!
}
startString += string
var limitNumber = startString.toInt()
if limitNumber > 59
{
return false
}
else
{
return true
}
}
但我的2个文本字段的代码不能正常工作:
func textField(textField: UITextField,
shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
var startString = ""
if (minutesTF.text != nil)
{
startString += minutesTF.text!
}
startString += string
var limitNumber = startString.toInt()
if limitNumber > 59
{
return false
}
else
{
return true
}
}
func textField2(textField: UITextField,
shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
var startString = ""
if (secondsTF.text != nil)
{
startString += secondsTF.text!
}
startString += string
var limitNumber = startString.toInt()
if limitNumber > 59
{
return false
}
else
{
return true
}
}
答案 0 :(得分:0)
您只能拥有shouldChangeCharactersInRange
方法的一个实现。所以你的第二个(在方法中使用textField2
名称)永远不会被调用。删除textField2:shouldChangeCharactersInRange:replacementString:
方法。
请注意,文本字段作为参数传递。使用该文本字段参数,而不是在实现中对文本字段ivar进行硬编码。
换句话说,将minutesTF
替换为textField
。
func textField(textField: UITextField,
shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
var startString = ""
if (textField.text != nil)
{
startString += textField.text!
}
startString += string
var limitNumber = startString.toInt()
if limitNumber > 59
{
return false
}
else
{
return true
}
}