Ios7 从UIPickerView切换到键盘

Ios7 从UIPickerView切换到键盘,ios7,keyboard,uitextfield,uipickerview,uikeyboard,Ios7,Keyboard,Uitextfield,Uipickerview,Uikeyboard,我有一个UIPickerView,它附带了一个工具栏按钮,允许用户从选择器视图切换到键盘视图。pickerView应该向下滑动,键盘应该在它的位置向上滑动。。。理论上 当用户单击textFieldDidBeginEditing中的文本字段时,将显示pickerView elementPicker = [[UIPickerView alloc] init]; [elementPicker setDelegate:self]; elementPicker.showsSelec

我有一个UIPickerView,它附带了一个工具栏按钮,允许用户从选择器视图切换到键盘视图。pickerView应该向下滑动,键盘应该在它的位置向上滑动。。。理论上

当用户单击textFieldDidBeginEditing中的文本字段时,将显示pickerView

    elementPicker = [[UIPickerView alloc] init];
    [elementPicker setDelegate:self];
    elementPicker.showsSelectionIndicator = YES;
    ...
    [_itemElementField setInputView:elementPicker];
当用户单击“使用键盘”按钮时,我有一种方法可以关闭选择器并调用键盘。我可以毫无问题地关闭pickerview,但无法显示键盘

救命啊

以下是当用户需要键盘时调用的方法:

-(void)useKeyboardClicked:(id)sender {
    NSLog(@"'USE KEYBOARD' BUTTON CLICKED");

    // DISMISS THE PICKER VIEW
    [elementPicker removeFromSuperview];
    [_itemElementField resignFirstResponder];
    _itemElementField.inputAccessoryView = nil;

    // SET ELEMENTPICKER TO THE DEFAULT KEYBOARD
    elementPicker = UIKeyboardTypeDefault;
    [_itemElementField setInputView:elementPicker];

    // SHOW KEYBOARD
    [_itemElementField becomeFirstResponder];
}
我现在正在抓救命稻草,需要一些帮助!我甚至尝试在头文件中用

 @property (strong, nonatomic) IBOutlet UIKeyboard *elementKeyboard;

但这根本不起作用。

这里有一个解决方案,首先,您必须声明布尔变量checkFlag,以保存useKeyboardClicked的记录:

然后

{

}


有一件事我不是完全错了,但我不能将选择器视图设置为键盘。。。。。试试我给你的提示…

对于那些将来可能会有这个问题的人,答案非常简单。
在使用“重新加载输入视图”将输入视图重置为键盘后,需要重新加载输入视图

代码如下:

-(void)useKeyboardClicked:(UITextField *)sender {
    NSLog(@"'USE KEYBOARD' BUTTON CLICKED");

    [_itemElementField setInputView:UIKeyboardTypeDefault];
    [_itemElementField becomeFirstResponder];
    [_itemElementField reloadInputViews]; 
}

什么是
\u itemElementField
?\u itemElementField是用户单击以调用选择器的文本字段的名称。
if (checkFlag) {
    checkFlag=false;
    [txtField setInputView:nil];
    [txtField reloadInputViews];
    [txtField setKeyboardAppearance:UIKeyboardAppearanceDefault]; //you can set UIKeyboardAppearnce as Dark,light, alert instead of Default
    [txtField setKeyboardType:UIKeyboardTypeDefault]; // you set decimal keyboard
} else {
    checkFlag=TRUE;

    [txtField setInputView:nil];
    [txtField setInputAccessoryView:numberToolbar];
    [txtField setInputView:pickerView];
}
-(void)useKeyboardClicked:(UITextField *)sender {
    NSLog(@"'USE KEYBOARD' BUTTON CLICKED");

    [_itemElementField setInputView:UIKeyboardTypeDefault];
    [_itemElementField becomeFirstResponder];
    [_itemElementField reloadInputViews]; 
}