就像苹果计时器应用程序一样,你不能选择“0”。你必须选择至少1小时或1分钟。这是我如何格式化选择器的文本字段..
//Formats the textfield based on the pickers.
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSString *result = [feetArray objectAtIndex:[feetPicker selectedRowInComponent:0]];
result = [result stringByAppendingFormat:@"%@ft", [feetArray objectAtIndex:[feetPicker selectedRowInComponent:1]]];
result = [result stringByAppendingFormat:@" %@", [inchArray objectAtIndex:[inchesPicker selectedRowInComponent:0]]];
result = [result stringByAppendingFormat:@"%@", [inchArray objectAtIndex:[inchesPicker selectedRowInComponent:1]]];
result = [result stringByAppendingFormat:@" %@in", [fractionArray objectAtIndex:[fractionPicker selectedRowInComponent:0]]];
RiseTextField.text = result;
}
如果他们一直选择“0”我需要什么,我希望脚在选择器上自动转到1。在我看来,我有3个采摘者。 2个组件用于英尺,2个组件用于英寸,然后1个组件用于分数。因此它显示在文本字段中,如10f 09 1 / 16in。
答案 0 :(得分:1)
基本上你想要做的是:(假设第0行包含零值)
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
if (([feetPicker selectedRowInComponent:0] == 0)&&
([feetPicker selectedRowInComponent:1] == 0)&&
([inchesPicker selectedRowInComponent:0] == 0)&&
([inchesPicker selectedRowInComponent:1] == 0)&&
([fractionPicker selectedRowInComponent:0] == 0)){
// All values zero
[feetPicker selectRow:1
inComponent:1
animated:YES];
return;
}
// Handle valid value
}
在旁注中,请考虑使用NSMutableString
result
。然后,您可以只调用NSString
来修改您拥有的那一行,而不是每行创建一个新的[result appendFormat:@"....
。