2013-08-16 5 views
1

Я исследовал это, но нашел только, как переключить клавиатуру для клавиатуры. Прямо сейчас у меня есть UIPicker и появляется, когда текстовое поле прослушивается. В Picker их три варианта, а третий - обычай. То, что я хочу сделать, - это когда пользовательский выбран, UIPicker заменяется клавиатурой. Я предполагаю, что это будет сделано с помощью метода if (select == 2) { }. Мне не нужна целая куча кода, просто метод замены Picker. Также я хотел бы сделать toolBar с обратной кнопкой, чтобы вернуться к сборщику. В настоящее время у меня есть панель инструментов с doneButton, чтобы выпустить сборщик, но мне нужно будет сделать кнопку, когда появится клавиатура, и кнопка сможет переключить клавиатуру обратно на мой Picker.Переключение UIPicker для keybaord

До сих пор мой пипетка, toolabr и TextField являются:

... 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    NSArray *array = [[NSArray alloc] initWithObjects:@"...",@"...",@"Custom", nil]; 
    self.PickerData = array; 

... 

    UIToolbar *toolBar = [[UIToolbar alloc] init]; 
    toolBar.barStyle = UIBarStyleBlackOpaque; 
    [toolBar sizeToFit]; 

... 

    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 
                       target:self 
                       action:nil]; 
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
                       target:self 
                       action:@selector(releasePicker)]; 


    Picker = [[UIPickerView alloc] init]; 
    Picker.showsSelectionIndicator = YES; 
    Picker.delegate = self; 
    doneButton.image = [UIImage imageNamed:@"button.png"]; 

    [toolBar setItems:@[flexSpace, doneButton] animated:YES]; 
    self.habitField.inputAccessoryView = toolBar; 

    [self.habitField setEnabled: YES]; 

    [self.habitField setInputView:Picker]; 

} 
- (void)releasePicker { 
    [self.habitField resignFirstResponder]; 
} 

... 

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

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

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    return [self.PickerData objectAtIndex:row]; 
} 

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    int select = row; 
    if (select == 0) { 

     ... 
    } 
    if (select == 1) { 

     ... 
    } 
    if (select == 2) { 

     ... 

    } 
} 


@end 

ответ

1
if (select == 2) { 
     [self.habitField resignFirstResponder]; 
     [self.habitField setInputView:nil]; 
     [self.habitField becomeFirstResponder]; 
} 

Это в основном скрывается UIPickerView затем удалить его, а затем появляются на клавиатуре.

Если вы хотите UIPicker встряхнуться использовать этот код:

[self.habitField resignFirstResponder]; 
[self.habitField setInputView:PickerData]; 
[self.habitField becomeFirstResponder]; 
+0

как я могу сделать кнопку принести сборщика обратно? –

+0

@ user2660874 См. Код в моем редактировании –

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