簡體   English   中英

UIPicker子視圖無法識別輸入

[英]UIPicker subview not recognizing input

我正在嘗試使用類似於鍵盤上的inputAccessoryView的工具欄來關閉UIPickerView。

我的文本字段和選擇器都使用相同的UIToolbar,該文本字段將正確關閉,但是選擇器甚至無​​法識別我對按鈕的觸摸。

這是我用來創建工具欄的代碼:

UIToolbar *tipToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
tipToolbar.barStyle = UIBarStyleDefault;
UIBarButtonItem *donebtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(resignResponder:)];
tipToolbar.items = [NSArray arrayWithObjects:
                    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                    donebtn, nil
];
[tipToolbar sizeToFit];
_outlet_txt_ipaddr.inputAccessoryView = tipToolbar;
[_outlet_picker addSubview:tipToolbar];

這是將關閉鍵盤或選擇器的操作:

- (IBAction)resignResponder:(id)sender{
    [_outlet_txt_ipaddr resignFirstResponder];
    [_outlet_picker resignFirstResponder];
}

工具欄出現在選擇器視圖上,但是我點擊完成按鈕甚至都沒有顯示動畫,更不用說調用resignResonder動作了。

用於選擇器視圖[_outlet_picker resignFirstResponder]; 不管用。

您需要實現用於選取器視圖的委托。

試試這個代碼

UIToolbar *tipToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
tipToolbar.barStyle = UIBarStyleDefault;
UIBarButtonItem *donebtn = [[UIBarButtonItem alloc] initWithTitle:@"Done"   style:UIBarButtonItemStyleDone target:self action:@selector(resignResponder:)];
tipToolbar.items = [NSArray arrayWithObjects:
                [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                donebtn, nil
 ];
[tipToolbar sizeToFit];
_outlet_txt_ipaddr.inputAccessoryView = tipToolbar;

_outlet_picker.delegate=self;
_outlet_picker.dataSource=self;
_outlet_picker.showsSelectionIndicator=YES;

[self.view addSubview:outlet_picker];

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

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

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
NSMutableArray *ary = [[NSMutableArray alloc] initWithArray:pickerValueAry];
id str=[ary objectAtIndex:row];
return str;
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{    
NSLog(@"selectedRowInPicker >> %d",row);
}  

您可以在選擇行時關閉選擇器視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM