if (![value integerValue]) {
textField.text = [[NSString alloc] initWithFormat:@"%d", *x];
[slider setValue:(float)*x];
}
if ([value integerValue]>100) {
textField.text = [[NSString alloc] initWithFormat:@"255"];
[slider setValue:100.0];
}
if ([value integerValue]<0) {
textField.text = [[NSString alloc] initWithFormat:@"0"];
[slider setValue:0.0];
}
[textField setText:value];
文本字段的值仍然是输入的值,当我将其设置为新值时忽略。
有人可以解释一下原因吗?
答案 0 :(得分:1)
[textField setText:value];
将UITextField值设置回值。
答案 1 :(得分:1)
您在方法结束时覆盖textField.text
属性,无论是否根据您的一个案例描述进行了“更正”。
检查原始代码中的最后一行,并注意textField.text = xyz
在语义上等于[textField setText:xyz]
。
要解决您的问题,请使用此修正后的代码版本:
if (![value integerValue]) {
textField.text = [[NSString alloc] initWithFormat:@"%d", *x];
[slider setValue:(float)*x];
}
else if ([value integerValue]>100) {
textField.text = [[NSString alloc] initWithFormat:@"255"];
[slider setValue:100.0];
}
else if ([value integerValue]<0) {
textField.text = [[NSString alloc] initWithFormat:@"0"];
[slider setValue:0.0];
}
else {
textField.text = value;
}