如何使用标签将PickerView选择设置为UITextFIeld.text?

时间:2012-01-30 20:24:46

标签: iphone objective-c ios xcode

我目前正在创建一组文本字段,并且在某个条件下而不是键盘,文本字段将显示选择器视图。一旦做出选择,我需要用选择填充文本字段。我在所有文本字段上创建了标签,问题是我不知道选择我想要的文本字段的语法。

以下是使用pickerview创建文本字段的代码。

    else if([input.controlTypeName compare:@"RadioButton"] == NSOrderedSame){
        UITextField *pickerViewtext = [[UITextField alloc] initWithFrame:CGRectMake(x, y, 280, 31)];          
        pickerViewtext.borderStyle = UITextBorderStyleRoundedRect;
        pickerViewtext.textColor = [UIColor blackColor]; //text color
        pickerViewtext.font = [UIFont systemFontOfSize:17.0];  //font size
        pickerViewtext.placeholder = placeholder;   //place holder
        pickerViewtext.backgroundColor = [UIColor whiteColor]; //background color
        pickerViewtext.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support
        pickerViewtext.tag = i;  //tag the textfields for future data collection
        pickerViewtext.keyboardType = UIKeyboardTypeDefault;  // type of the keyboard
        pickerViewtext.returnKeyType = UIReturnKeyDone;  // type of the return key
        pickerViewtext.clearButtonMode = UITextFieldViewModeWhileEditing;   // has a clear 'x' button to the right     
        pickerViewtext.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed

        UIPickerView *radioPicker = [[UIPickerView alloc] initWithFrame:CGRectZero];
        radioPicker.delegate = self;
        radioPicker.showsSelectionIndicator = YES;
        radioPicker.tag = i;   
        radioTag = i;

        [radioSize addObject:[NSNumber numberWithInt:5]];
        [radioList addObject:input.sourceText];     


        pickerViewtext.inputView = radioPicker;


        [inputsView addSubview:pickerViewtext];
        y = y + 50;
   }

我基本上不知道该放入什么

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:    (NSInteger)component {
// Handle the selection
  }

委托方法。我想过将'radioTag'变量用作某种全局变量。但是由于可能有多个使用选择器视图的文本字段,这只会导致所有选择器视图链接回同一文本字段。我发现的大多数标签示例似乎都不适用于此或过于陈旧且语法已更改。任何帮助都会很棒。

感谢。

2 个答案:

答案 0 :(得分:0)

UITextField *textField = (UITextField *)[inputsView viewWithTag:pickerView.tag];

答案 1 :(得分:0)

我有类似的应用程序使用以下内容,这可能会指向正确的方向

NSString *aVal = [activities objectAtIndex:[_emailPicker selectedRowInComponent:0]];
a=[aVal intValue];
NSString *bVal = [activities objectAtIndex:[_emailPicker selectedRowInComponent:1]];
b=[bVal intValue];
NSString *cVal = [activities objectAtIndex:[_emailPicker selectedRowInComponent:2]];
c=[cVal intValue];

它有三个组件,你可以只使用组件:0,或者你需要的任何东西。每个的第二部分是转换为您可能不需要的intValue [整数值]。其他人可能。

将值放入mutableArray并使用以下方式“输入”到选择器视图中

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:   (NSInteger)component
{
    if (component == 0) {

        return [activities count];
    }
    else if (component == 1) {
        return [feelings count];
    }
    else if (component==2) {
        return [addresses count];
    }
    else return 0;
}

我的三个数组被称为活动,感觉和地址以及计数是每个数组中的条目数。我希望这会让你走得更远。