tags:

views:

19

answers:

0

I need to keep track of which text field is the firstResponder for my custom keyboard to work. In the code below, I have grossly oversimplified my program, but here is the gist of the problem:

@implementation SimplePickerViewController
@synthesize pickerKeyboard;
@synthesize textView;
@synthesize textView2;
@synthesize firstResponder;

-(void)viewDidLoad{
    pickerKeyboard = [[PickerKeyboardViewController alloc] initWithNibName:@"PickerKeyboard" bundle:nil];
    pickerKeyboard.delegate = self;
    [self.textView setInputView:pickerKeyboard.view];
    [self.textView setDelegate:self];
    [self.textView2 setInputView:pickerKeyboard.view];
    [self.textView2 setDelegate:self];
}

-(void)hideKeyboard{
    [self.firstResponder resignFirstResponder];
    self.firstResponder = nil; //without this line, the code doesn't work.
}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{
    self.firstResponder = textView;
    [self.pickerKeyboard.picker reloadAllComponents];
    return YES;
}

If I remove the line setting the firstResponder to nil, the code ceases to function properly, but I am not sure why. (Without that line, I can select the first textView to bring up the keyboard, but after that I can never bring the keyboard back. Any ideas? Thanks!