UIScrollView 使 UITextField 停止调用 UIPicker

Posted

技术标签:

【中文标题】UIScrollView 使 UITextField 停止调用 UIPicker【英文标题】:UIScrollView makes UITextField stop calling UIPicker 【发布时间】:2013-01-14 19:17:28 【问题描述】:

开始。我已经在 SO 和其他地方对此进行了研究,但没有找到问题的确切答案。我见过类似的问题,但不一样。我有一个功能齐全的应用程序,它使用选择器填充大约 5 个文本字段。当用户点击文本字段时,选择器就会出现,一切都很好。我最近想扩大文本字段之间的空间以使其看起来更好。但是我没有足够的空间。所以我想我可以将文本字段放入滚动视图中,这样就可以了。但是,当我连接我的操作“showYourPicker”时,选择器不再出现,常规键盘会出现。我什至尝试将视图设为 UITextfieldDelegate 并运行

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

[self showYourPicker:self];
return NO;  

显示我的选择器并隐藏键盘,但这不起作用。我知道我已经正确连接了文本字段,因为如果我删除滚动视图并将其全部连接起来,一切都会恢复正常。那么,当文本字段位于滚动视图内时,我该怎么做才能显示选择器而不是默认键盘。提前致谢。如果您需要更多代码,请告诉我。

【问题讨论】:

您是否将 textField 的 inputView 属性设置为您的选择器?这是正确的做法。 @calvinBhai。是的,我在方法 showYourPicker 中设置了它。它适用于应用程序的所有其他选项卡,除了我放入滚动视图的选项卡。我应该在其他地方设置该属性吗?谢谢。 理想情况下,你应该做你的 textField.inputView = yourPickerView;当文本字段被创建或添加到视图时。 那么也许在视图中会出现或者视图确实加载了? 是的,无论你在哪里做你的 UITextField *theTextField = [[UITextField alloc] init];,就在那之后 【参考方案1】:

无论你在哪里做这个

UITextField *theTextField = [[UITextField alloc] init];

然后做这个

textField.inputView = yourPickerView;

【讨论】:

以上是关于UIScrollView 使 UITextField 停止调用 UIPicker的主要内容,如果未能解决你的问题,请参考以下文章

使 UIScrollView 表现得像 UIPageControl

使滚动条在uiscrollview中始终可见[重复]

如何使 UIButton 与 UIScrollView 一起移动

使 UIScrollView 成为第一响应者

如果我在 UIScrollView 中有 UIViewController,如何以编程方式使 UIScrollview zoomToRect?

如何使在Swift中使用UIScrollView进行滚动和缩放