我有一个UIPickerView设置,附带一个工具栏按钮,允许用户从选择器视图切换到键盘视图。 pickerView应该向下滑动,键盘应该在它的位置向上滑动......理论上。
当用户点击textFieldDidBeginEditing中的文本字段时,会出现pickerView。
elementPicker = [[UIPickerView alloc] init];
[elementPicker setDelegate:self];
elementPicker.showsSelectionIndicator = YES;
...
[_itemElementField setInputView:elementPicker];
当用户点击"使用键盘"按钮,我有一个方法来解雇选择器并调用键盘。我可以毫无问题地解雇pickerview但是不能显示键盘!
HELP!
以下是用户想要键盘时调用的方法:
-(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;
但这并不适用于所有人。
答案 0 :(得分:0)
这是解决方案首先,您必须声明布尔变量checkFlag以保留useKeyboardClicked的记录:
然后
-(void)useKeyboardClick:(id)sender
{
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];
}
}
有一件事我不是完全错了,但是我不能回头选择视图而不是键盘.....试试这个我给你提示......
答案 1 :(得分:0)
对于那些可能在将来遇到这个问题的人来说,答案最终很简单 使用 reloadInputViews 将其重置为键盘后,您需要重新加载输入视图。
以下是代码:
-(void)useKeyboardClicked:(UITextField *)sender {
NSLog(@"'USE KEYBOARD' BUTTON CLICKED");
[_itemElementField setInputView:UIKeyboardTypeDefault];
[_itemElementField becomeFirstResponder];
[_itemElementField reloadInputViews];
}