I'm trying to get my view to move up when a certain textField or textview is selected instead of every textfield i have. The view has 4 textfields and one textview. I want ONLY the 4th textfield and the textview to move up when the keyboard is being activated. (since the keyboard covers the textfield and textview) I've tried many suggestions given here, however none of them work for me.
I found an example (https://stackoverflow.com/a/21257034/5292561) of how i want it to look like, however when clicking on every textfield the view moves up rather than when i click only the 4th textfield or textview.
NOTE: I want to AVOID using scrollview since i don't like how it's being used. I've read negative things about it.
I'm still trying to learn so please bear with me. Thanks in advance
Here is the code for the textField and Textview i want to move up when clicking on the textfield and textview:
//dienstPicker input and styling
self.dienstPicker = [[UIPickerView alloc] init];
self.dienstPicker.delegate = self;
self.dienstPicker.dataSource = self;
self.dienstPicker.showsSelectionIndicator = YES;
[self.dienstPicker selectRow:1 inComponent:0 animated:YES];
//UITextField *textfield = [UIResponder currentFirstResponder];
[self.dienstTextField setInputView:_dienstPicker];
UIToolbar *toolBar2=[[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, 320, 44)];
[toolBar2 setTintColor:[UIColor grayColor]];
UIBarButtonItem *doneBtn2=[[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStylePlain
target:self
action:@selector(ShowSelectedOption2)];
UIBarButtonItem *space2= [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
[toolBar2 setItems:[NSArray arrayWithObjects:space2, doneBtn2, nil]];
[self.dienstTextField setInputAccessoryView:toolBar2];
self.dienstArray = @[@"test1",@"test2"];
self.omschrijvingTextView.delegate = self;
self.omschrijvingTextView.layer.borderWidth = 1.0f;
self.omschrijvingTextView.layer.borderColor = [[UIColor lightGrayColor] CGColor];
UIToolbar *toolBar4=[[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, 320, 44)];
[toolBar4 setTintColor:[UIColor grayColor]];
UIBarButtonItem *doneBtn4=[[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStylePlain
target:self
action:@selector(ShowDescription)];
UIBarButtonItem *space4= [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
[toolBar4 setItems:[NSArray arrayWithObjects:space4, doneBtn4, nil]];
[self.omschrijvingTextView setInputAccessoryView:toolBar4];
CGRect textViewFrame = CGRectMake(0, 0, 320, 44);
UITextView *omschrijvingTextView = [[UITextView alloc] initWithFrame:textViewFrame];
omschrijvingTextView.returnKeyType = UIReturnKeyDone;
pragma mark - UIPickerViewDataSource
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if ([pickerView isEqual: _dienstPicker]){
return [self.dienstArray count];
} else if ([pickerView isEqual: _projectPicker]){
return [self.projectArray count];
} else return 0;
}
pragma mark - UIPickerViewDelegate
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if ([pickerView isEqual: _dienstPicker]){
return self.dienstArray[row];
} else if ([pickerView isEqual: _projectPicker]){
return self.projectArray[row];
} else return 0;
}
-(void)pickerView:(UIPickerView *)pickerView selectRow:(NSInteger)row inComponent:(NSInteger)component {
if ([pickerView isEqual: _dienstPicker]){
self.dienstTextField.text = self.dienstArray[row];
} else if ([pickerView isEqual: _projectPicker]){
self.projectTextField.text = self.projectArray[row];
}
}