0

mainViewControllerが1つあり、UIPickerViewがあります。これですべてが正常に設定されましたが、アプリを実行してtextFieldを選択すると、UIPickerViewリストに疑問符が表示されます。

今、私はそれを学びました。それは、私がその代理人を接続していないためです。ただし、デリゲートを接続すると、textFieldにデータが入力されません。

TextFieldはmainViewControllerにあります。

したがって、MainViewController.hには、UIPickerViewをインポートし、このコードがあります。これはすべてエラーなしです。_pvはUIPickerViewです。

 _pv = [[CategoryPicker alloc] init];

[_pv.categoryPicker setDelegate:self];
[_pv.categoryPicker setDataSource:_pv];

[_appPriorityTxtFld setInputView:_pv];
[_appPriorityTxtFld setInputAccessoryView:toolbar];

これで、Delegateがselfに設定されていることがわかります。これにより、textFieldにデータを入力できるようになります。

これを_pvに設定すると、リストは正しく表示されますが、textFieldにデータが入力されません。

何が足りないの?

乾杯

4

1 に答える 1

6

ピッカーデリゲートメソッド「pickerView:didSelectRow:inComponent:」を実装する必要があり、選択したテキストをtextfildテキストとして設定する必要があります。参照用に次のコードを参照してください。

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [dataArray objectAtIndex:row];
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    textField.text = [dataArray objectAtIndex:row];
}

これは役に立つかもしれないと思います。

于 2012-06-26T06:02:37.787 に答える