7

私はinputViewにUIPickerView夢中になっています。UITextField's私はそれがポップアップしています。ユーザーがいつ行を選択したかを知っています。行の値を知っています。それはすべて素晴らしいです。

私の質問は、いつピッカーを却下するかを扱っています。[Cancel] と [Done] を備えたツールバーをピッカーと結びつけ、いずれかのボタンのクリックでそれを閉じる人を見てきました。ユーザーは選択を取り消すことができるため、これはおそらく最良のアプローチです。

また、ユーザーが目的の選択までスクロールし、もう一度それを押してピッカーを閉じるアプリも見ました。これを行う方法を知りたいです。ピッカーが特定の行が選択されていることを通知すると、ユーザーが同じアクティブな行をクリックまたは押し続けると、再度通知されないことに気付きました。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
4

2 に答える 2

2

呼び出すことができるテキストフィールドにipnputViewとしてピッカーを追加したので、UserDanoさん

 [outletForTextField resignFirstResponder] 

これは、pickerViewを辞任するのに役立ちます。これを行う方法は、最初の選択で値を選択し、2番目の選択(同じ行の場合)でピッカーを非表示にすることです。したがって、選択した値を格納するためにブール値を保持し、後でそれを使用して削除します。同じ行が選択されている場合のピッカーがうまくいく可能性があります。それが役に立てば幸い

于 2011-10-11T04:14:19.803 に答える
0

ボタンをクリックしたときにピッカービューを閉じる方法を知りたい場合は、私のプロジェクトの1つで使用したこのスニペットを配置できます。

    NSInteger selectedRow=[yourPickerView selectedRowInComponent:0];// i assume your picker have one component
NSString *item=[yourPickerView objectAtIndex:selectedRow];//get the selected item
yourTextField.text=[NSString stringWithFormat:@"%@",item];//display the selected item in the text field
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
CGAffineTransform transform=CGAffineTransformMakeTranslation(0, 480);
yourPickerView.transform=transform;
[UIView commitAnimations];//dismiss the view controller which contains the picker view

上記のコードをボタンのIBActionメソッドに配置します。お役に立てば幸いです。

于 2012-03-23T09:03:03.920 に答える