0

タブで uitextfield に移動すると uipickerview を表示でき、行を選択してテキストフィールドに選択を割り当てることができます。ここまでは問題ありません。以下のコードを見つけることができます。

-(void)pickerDoneClicked
{
[il resignFirstResponder];  
mypickerToolbar.hidden=YES;
pktStatePicker.hidden=YES;
}


- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
// Show UIPickerView

return YES;
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:     (NSInteger)component
{
   return [arrState count];
}

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

- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
il.text = [arrState objectAtIndex:row];
NSInteger asa= [pickerView selectedRowInComponent:0];
[ilsecid setText:[NSString stringWithFormat:@"%li",(long)asa+1]];
}


- (void)viewDidLoad
{
[super viewDidLoad];
arrState= [[NSArray alloc] initWithObjects: @"class1",@"class2", @"class4",@"class10",@"class11",@"class14",@"class15",@"class16", nil];
pktStatePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 43, 320, 480)];
pktStatePicker.delegate = self;

pktStatePicker.dataSource = self;

[pktStatePicker  setShowsSelectionIndicator:YES];
il.inputView =  pktStatePicker  ;

mypickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 56)];
mypickerToolbar.barStyle = UIBarStyleBlackOpaque;
[mypickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]   
initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDoneClicked)];
[barItems addObject:doneBtn];
[mypickerToolbar setItems:barItems animated:YES];
il.inputAccessoryView = mypickerToolbar;
[self invokeService];
}

しかし、もう一度テキストフィールドにタブで移動しても、uipickerview は再び表示されません。(最初の使用後に消え、再度タブしても表示されません。

4

1 に答える 1

0

はい bobnoble、textFieldShouldBeginEditing にはツールバーとピッカービューを非表示にする必要があります。私の欠けている行を指摘してくれてありがとう。

于 2013-06-30T13:11:25.820 に答える