我有一个 View ,其中有几个文本字段。我使用 UIPopoverController 呈现此 View 。
弹出窗口工作正常。但是当我点击文本字段时,键盘不会显示。我以编程方式将文本字段设置为 firstResponder
并且工作正常。但我希望用户能够点击任何文本字段并根据需要输入信息。
我启动弹出窗口 Controller 的代码是:
UIStoryboard *storyBoard = [self storyboard];
GeneralPickerViewController *picker = [storyBoard instantiateViewControllerWithIdentifier:@"GeneralPicker"];
[picker setDelegate:self];
[picker setPickerMode:@"NewParty"];
_popover = [[UIPopoverController alloc] initWithContentViewController:picker];
[_popover setDelegate:self];
[_popover setPopoverContentSize:CGSizeMake(286, 268)];
[_popover presentPopoverFromBarButtonItem:_createNewEntityButton permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
我已将文本字段的委托(delegate)设置为 GeneralPickerViewController 类,因为文本字段位于 GeneralPickerVC 的 View 上。
请告诉我为什么会发生这种情况。
最佳答案
假设文本字段已启用且可编辑...
UITextField 的默认行为是在它被点击时成为第一响应者。 不需要委托(delegate)方法来实现这一点。 View 是否显示在 UIPopoverController 中也无关紧要。 所以基本上所需的行为(如问题中所述)应该是默认行为。
我以前见过这样的问题,是由于 textview 框架(部分)位于 superview 的框架之外(因此 View 外的区域没有响应触摸)。这可能是由无效的 autoresizingmask(或约束)引起的。当在弹出 Controller 中显示时, View 将调整大小。
关于ios - UIPopover 上的 UITextField 不显示键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19928524/