ios - UIPopover 上的 UITextField 不显示键盘

标签 ios objective-c storyboard

我有一个 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/

相关文章:

ios - 层次结构顶层的初始 View Controller 丢失 NavigationBar

ios - Storyboard + 基本本地化 + .strings 文件在运行时未本地化

xcode - 为什么我在 Storyboard中的 View 高度不同/不显示导航栏?

objective-c - UINavigationBar 中的 rightBarButtonItems 间距

ios - 使用 ARKit 和 SCENEKit 定位虚拟 Assets

ios - 关于从 AVAudioPCMBuffer 中提取声压级

objective-c - UITabBarItem : Overwrite default appearance in subclass

iphone - 我如何将 NSData 转换为 NSArray?

ios - NSFetchedResultsController 委托(delegate)仅在首次启动应用程序时触发方法

objective-c - presentViewController 后返回 ViewController