2010-09-22 110 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