简体   繁体   English

如何在uipicker视图上添加完成按钮

[英]how to add done button on uipicker view

I have written the following code on button click action in order to create ui picker view 我在按钮单击操作上编写了以下代码,以便创建ui选择器视图

- (IBAction)selectbtn:(id)sender {
    pickerview = [[UIPickerView alloc] initWithFrame:CGRectMake(5, 40, 300, 300)];
    pickerview.showsSelectionIndicator = YES;
    pickerview.hidden = NO;
    pickerview.delegate = self;
    [self.view addSubview:pickerview];
}

Here are my picker delegates 这是我的采摘代表

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


}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return self.jsonresultarr.count;


}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{

//    return [[self.jsonresultarr objectAtIndex:row] objectForKey:@"Company_Id"];
  //  NSObject *companyId = [[self.jsonresultarr objectAtIndex:row] objectForKey:@"Company_Id"];
    NSObject *companyName = [[self.jsonresultarr objectAtIndex:row] objectForKey:@"Company_Name"];
    return [NSString stringWithFormat:@"%@", companyName, nil];




}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    self.Textbox.text=[[self.jsonresultarr objectAtIndex:row] objectForKey:@"Company_Name"];
    [self.pickerview removeFromSuperview];


}

My problem is that i want to show done button on uipicker view whose function is to set selected value in my text field. 我的问题是我想在uipicker视图上显示完成按钮,其功能是在我的文本字段中设置选定的值。 How i can make it. 我该怎么做。 Thanx in advance 提前感谢

You can use this . 您可以使用此。 first add UIView in your self.view. 首先在您的self.view中添加UIView。 add UIPickerView and UIToolBar init. 添加UIPickerViewUIToolBar init。 and bind IBAction method with UIBarButtonItem. 并将IBAction方法与UIBarButtonItem绑定。 Please check attach screenshot. 请检查附加屏幕截图。

在此处输入图片说明

Maybe this will help you. 也许这会对您有所帮助。

You should use UIBarButtonItem && UIToolbar 您应该使用UIBarButtonItem && UIToolbar

// add a toolbar with Done button
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
toolBar.barStyle = UIBarStyleBlackOpaque;

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTouched:)];

[toolBar setItems:[NSArray arrayWithObjects:doneButton, nil]];
self.pickerViewTextField.inputAccessoryView = toolBar;

Triggered the picker view when click on Done Button 单击“完成”按钮时触发选择器视图

- (void)doneTouched:(UIBarButtonItem *)sender
{
    // hide the picker view
    [self.pickerViewTextField resignFirstResponder];

    // perform some action
}

and you can get selected value in didSelectRow delegate method. 您可以在didSelectRow委托方法中获取选定的值。

Try this one 试试这个

  UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(done)];
 cancelButton=[[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(cancel)];
[cancelButton setTintColor:[UIColor whiteColor]];
    UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-PickerView.frame.size.height-50, 320, 50)];
    NSArray *toolbarItems = [NSArray arrayWithObjects:cancelButton,doneButton,nil];
[toolbar setItems:toolbarItems];
self.textfield1.inputAccessoryView = toolbar;

where is done method is as below 哪里做的方法如下

-(void)done{
 self.textfield1.text =[Array objectAtIndex:];
// for you it 
//self.Textbox.text=[[self.jsonresultarr objectAtIndex:[PickerView selectedRowInComponent:0]] objectForKey:@"Company_Name"];
}

and cancel method is 和取消方法是

-(void)cancel{
[self.view endEditing:YES];
}

You can simply use this method(for ios8) 您可以简单地使用此方法(适用于ios8)

actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil    
destructiveButtonTitle:nil otherButtonTitles:nil];

    [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
    CGRect pickerFrame = CGRectMake(0, 0, 0, 0);
    UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame];
    pickerView.showsSelectionIndicator = YES;
    pickerView.dataSource = self;
    pickerView.delegate = self;
    txtPriorityTemp=myTextField;
    [actionSheet addSubview:pickerView];

    alertController = [UIAlertController alertControllerWithTitle:nil
                                                          message:@"\n\n\n\n\n\n\n\n\n\n"
                                                   preferredStyle:UIAlertControllerStyleActionSheet];
    //pickerView.frame=CGRectMake(0, 0, 120, 30);
    UIView *toolView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 305.0f, 44.f)];
    toolView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blank-headerNew.png"]];
    CGRect buttonFrame = CGRectMake(220, 5, 70, 30);
    UIButton *selButton = [[UIButton alloc] initWithFrame:buttonFrame];
    //[selButton setBackgroundImage:[UIImage imageNamed:@"red_bgnew.png"] forState:UIControlStateNormal];
    [selButton setTitle:@"Done" forState:UIControlStateNormal];
    [selButton addTarget: self
                  action: @selector(dismissActionSheet:)
        forControlEvents: UIControlEventTouchDown];
    selButton.tag= myTextField.tag+10;
    [toolView addSubview:selButton];
    [alertController.view addSubview:pickerView];
    [alertController.view addSubview:toolView];
    [self presentViewController:alertController animated:YES completion:nil];
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM