0

テキストフィールドがクリックされたときにinputViewを使用してpickerViewを表示しています。次に、ピッカービューに1〜100の数字を入力します。うまくいくと思ったコードがいくつかありますが、プログラムを実行してtextFieldをクリックすると、空のピッカービューがポップアップ表示されます。また、ツールバーに別のボタンを配置する方法を知る必要があります。ユーザーの選択を確認するために右側に送信ボタンを配置したい(キャンセルするために完了を変更する予定です)ピッカーとボタンを使用してInterface Builderで行う必要があることはありますか?それらはコードで作られているので、私は実際にはインターフェイスビルダーにそれらを持っていないので...

以下は私の.hファイルと.mファイルです。

.h ----

@interface TestinputviewViewController : UIViewController <UITextFieldDelegate,UIPickerViewDataSource,UIPickerViewDelegate> {

IBOutlet UITextField *textField;
NSMutableArray *pickerViewArray;
}
-(IBAction) textFieldDidBeginEditing;
@end

.m ---

 #import "TestinputviewViewController.h"

@implementation TestinputviewViewController


-(IBAction)textFieldDidBeginEditing{


UIPickerView *myPickerView = [[UIPickerView alloc] init];
textField.inputView = myPickerView;
myPickerView.showsSelectionIndicator = YES;
myPickerView.delegate = self;
myPickerView.dataSource = self;
    [myPickerView release];


UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,320,44)];
                        UIBarButtonItem *doneButton =     [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self   action:@selector(inputAccessoryViewDidFinish)];
[myToolbar setItems:[NSArray arrayWithObject:doneButton] animated:NO];
                        textField.inputAccessoryView =     myToolbar; 

}   



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

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

-(NSString *)pikerView:(UIPickerView *) myPickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [pickerViewArray objectAtIndex:row];
}


// Implement viewDidLoad to do additional setup after loading the view, typically from a     nib.
- (void)viewDidLoad {
[super viewDidLoad];

pickerViewArray = [[NSMutableArray alloc] init];
for (int i = 1; i<=20; i++) {
    NSString *myString = [NSString stringWithFormat:@"%d%",i];
    [pickerViewArray addObject:myString];

}
}
4

1 に答える 1

1

ピッカーのデリゲートを現在のオブジェクトクラスに設定していません。

使用する

`myPickerView.delegate = self;`

 `myPickerView.dataSource = self;`

ピッカービューオブジェクトを割り当てた後。

続ける..

于 2012-07-12T05:23:20.050 に答える