Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 切换uitextfield的inputview_Iphone_Ios_Ipad_Uitextfield - Fatal编程技术网

Iphone 切换uitextfield的inputview

Iphone 切换uitextfield的inputview,iphone,ios,ipad,uitextfield,Iphone,Ios,Ipad,Uitextfield,我正在textFieldDidBeginEditing方法中为我的textfield创建一个自定义输入视图,使用 textField.inputView =wView; 有一个按钮,我想用它取回键盘,而不是我的自定义输入视图。你知道怎么做吗 如果没有其他选择,我想尝试辞去textfield作为第一响应者,让它再次成为第一响应者。但这会使我的项目变得复杂。我想知道是否还有其他方法。事情已经发生了很大的变化,因为我早在2012年就写了这个答案,@yoooriii提到的推荐方法是: myTextFi

我正在textFieldDidBeginEditing方法中为我的textfield创建一个自定义输入视图,使用

textField.inputView =wView;
有一个按钮,我想用它取回键盘,而不是我的自定义输入视图。你知道怎么做吗


如果没有其他选择,我想尝试辞去textfield作为第一响应者,让它再次成为第一响应者。但这会使我的项目变得复杂。我想知道是否还有其他方法。

事情已经发生了很大的变化,因为我早在2012年就写了这个答案,@yoooriii提到的推荐方法是:

myTextField.inputView = nil
myTextField.reloadInputViews()
改用这个:

-reloadInputViews (UIResponder)

当textField已经是第一个响应者(屏幕上的键盘)时,我切换回默认键盘的解决方案是将他的inputView设置为nil而不是call ReloadInputView,如下所示:

textField.inputView = nil;
[textField reloadInputViews];

希望这能有所帮助。

您需要创建一个不是空的inputView。正如上面所说:

如果此属性中的值为nil,则文本字段在成为第一响应程序时显示标准系统键盘。将自定义视图指定给此属性会导致显示该视图

此属性的默认值为零

要实施它:

创建一个类似苹果所说的属性:

@property(readwrite, strong) UIView *inputView;
启动它:

self.inputView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
将其分配给textField或textView的inputView:

[textView setInputView:self.inputView];
重新加载所有InputView:

[textView reloadInputViews];
您可以在
textViewDidBeginEditing
中执行这些操作:

- (void)textViewDidBeginEditing:(UITextView *)textView {
      self.inputView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
      [textView setInputView:self.inputView];
      [textView reloadInputViews];
}

尝试
textField.inputView=nil我试过了,完全没有改变。所以唯一的解决办法就是辞去textfield作为第一响应者?救了我一天!tnxA使用示例会很好。另外,请查看格式化指南。@JanDvorak,像这样使用它<代码>self.textView.inputView=nil;[self.textView重新加载输入视图]