2010-09-22 65 views
1

我在我的应用程序中有许多UIPICKER。我让他们设置为当用户点击文本控件时,选择器出现,用户可以选择一个值。该值然后显示在文本字段中,但我希望在UIPicker出现时用文本字段填充初始值。目前,只有用户实际移动选取器时,才会填充文本字段。在UIPicker中设置初始值

代码:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    if([pickerView isEqual: routePicker]) 
    { 
     route.text = [[routeArray objectAtIndex:row] valueForKey:@"route_name"]; 
    } 
    else if([pickerView isEqual: timePicker]) 
    { 
     if (component == 0) 
     { 
      selectedHour = [hourArray objectAtIndex:row]; 
     } 
     else if (component == 1) 
     { 
      selectedMinute = [minuteArray objectAtIndex:row]; 
     } 
     else if (component == 2) 
     { 
      selectedSecond = [secondArray objectAtIndex:row]; 
     } 
     time.text = [NSString stringWithFormat:@"%@:%@:%@", selectedHour, selectedMinute, selectedSecond]; 
    } 
    else if([pickerView isEqual: activityPicker]) 
    { 
     activity.text = [activityArray objectAtIndex:row]; 
    } 
    else if([pickerView isEqual: intensityPicker]) 
    { 
     intensity.text = [intensityArray objectAtIndex:row]; 
    } 
} 

问候, 斯蒂芬

回答

0

在文本框的委托方法 之前打开选择器

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
if(textField.tag==kINTENSITYTEXTTAG) 
{ 
    if(![intensity.text length]) 
    { 
    intensity.text = [intensityArray objectAtIndex:0]; 
    } 
} 
// SAME FOR REMAINING textFields Based on the tag to get which textfield is selected 
} 

编码快乐......

+0

我该怎么申报kINTENSITYTEXTTAG为? – Stephen 2010-09-22 08:38:41

+0

它的任何数字,你已作为标签给你的文本域 – 2010-09-22 11:32:09

+0

Suriya,谢谢你的回应,但我没有得到预期的结果。我将我的UIPICK添加为子视图。在IB中,我没有选中“用户交互按钮”,这使我可以检测到用户在哪里点击并加载相应的UIPicker。但这意味着'textFieldDidBeginEditing'不会被调用。有什么想法吗 ? – Stephen 2010-09-22 12:28:36