2014-11-12 3 views
1

Я написал следующий код на кнопку мыши действий для того, чтобы создать щ вид сборщикакак добавить кнопку Выполненные на просмотр uipicker

- (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]; 
} 

Вот мои делегаты Picker

-(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]; 


} 

Моя проблема что я хочу показать сделанную кнопку на экране uipicker, чья функция заключается в установке выбранного значения в текстовое поле. Как я могу это сделать. Thanx заранее

+0

используйте 'UIToolbar' и добавьте в него' UIBarbuttonItem'. добавьте панель инструментов над вашим сборщиком. –

+0

@Chinttu -Maddy- Ramani вы, пожалуйста, расскажите, как я новичок в ios –

+0

. Проверьте это (http://stackoverflow.com/questions/20883388/display-done-button-on-uipickerview) –

ответ

8

Вы можете использовать это. сначала добавьте UIView в свой self.view. add UIPickerView и UIToolBar init. и свяжите метод IBAction с UIBarButtonItem. Проверьте прикрепленный снимок экрана.

enter image description here

Может быть, это поможет вам.

+0

попробуйте этот. это поможет вам. если вы не нашли свой ответ. –

+0

thanx для идеи попробует :) –

+0

@MishalAwan, если какой-нибудь ответ вам полезен, тогда, пожалуйста, пометьте как ответ, чтобы он был полезен для других. –

2

Вы должны использовать 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; 

Срабатывает вид сборщика, когда нажмите на кнопку Готово

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

    // perform some action 
} 

и вы можете получить выбранное значение в didSelectRow метод делегата.

+0

он не работает :( –

+0

Метод, который был затронут не срабатывает при нажатии на кнопку штрих-кода. –

+0

чем добавить UITapGestureRecognizer для UIBarButtonItem и call doneTouched метод с параметром UITapGestureRecognizer. – iBhavin

-1

Вы можете просто использовать этот метод (для 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]; 
    } 
+0

Он не работает –

1

Попробуйте один

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; 

где делается метод, как показано ниже

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

и отменить метод

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

Я хочу, чтобы действие на этой кнопке –

+0

вы меняете @selector (done) с помощью действия нажатия кнопки, как указано выше. Замена выполнена с помощью вашего действия. –

+0

означает ??что вы хотите ti сказать .. u можете опубликовать решение здесь –

Смежные вопросы