键盘不显示UIPopover上的UITextField

时间:2013-11-12 11:57:06

标签: ios objective-c storyboard

我有一个包含几个文本字段的视图。我使用UIPopoverController呈现此视图。

popover工作正常。但是当我点击文本字段时,键盘不显示。我以编程方式将一个文本域设置为firstResponder,并且工作正常。但我希望用户能够点击任何文本字段并按照自己的意愿输入信息。

启动弹出控制器的代码是:

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];

我已将textfield的委托设置为GeneralPickerViewController类,因为文本字段位于GeneralPickerVC的视图中。

请让我知道为什么必须这样做。

1 个答案:

答案 0 :(得分:1)

假设文本字段已启用且可编辑...

UITextField的默认行为是在点击时成为第一响应者。 不需要委托方法来实现这一目标。 视图是否在UIPopoverController中呈现也无关紧要。 因此,基本上所需的行为(如问题中所述)应该是默认行为。

我之前看到过这样的问题,由textview框架引起,其中(部分)在superview的框架之外(因此视图外的区域没有响应触摸)。这可能是由无效的自动调整掩码(或约束)引起的。当在popovercontroller中呈现时,视图将被调整大小。