我有一个包含几个文本字段的视图。我使用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的视图中。
请让我知道为什么必须这样做。
答案 0 :(得分:1)
假设文本字段已启用且可编辑...
UITextField的默认行为是在点击时成为第一响应者。 不需要委托方法来实现这一目标。 视图是否在UIPopoverController中呈现也无关紧要。 因此,基本上所需的行为(如问题中所述)应该是默认行为。
我之前看到过这样的问题,由textview框架引起,其中(部分)在superview的框架之外(因此视图外的区域没有响应触摸)。这可能是由无效的自动调整掩码(或约束)引起的。当在popovercontroller中呈现时,视图将被调整大小。