首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UIView inputView vs inputViewController

UIView inputView vs inputViewController
EN

Stack Overflow用户
提问于 2015-01-08 02:37:40
回答 2查看 2.2K关注 0票数 1

在iOS7或更早版本中,我可以简单地设置UIViewinputView属性,以便在应用程序中实现自定义键盘。当设备旋转时,我只需将inputView的帧高重置为横向或纵向键盘的高度,键盘的高度就会正确地更新。

在iOS8中,所有这些都被破坏了。对inputView框架的更改被忽略了。我尝试过调整inputView的自动调整掩码和自动调整约束,但这些限制在其他方面也失败了。

现在是否需要子类UIInputViewControllerUIInputView来实现自定义键盘(即使不是系统范围的键盘)?我在苹果的文档中找不到支持这一点的任何东西,但看起来可能是这样。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-26 16:36:42

键盘高度问题是一个iOS8错误,子类UIInputViewController不会修复它。UIInputViewController的目的完全是为了做全系统的键盘,而正如苹果声明的那样,如果你只为自己的应用程序做自定义键盘,你就不应该使用它。

确保定制的、全系统的键盘确实是您想要开发的。为了为您的应用程序提供一个完全自定义的键盘,或者在您的应用程序中为系统键盘提供自定义键,iOS SDK提供了其他更好的选项。阅读自定义输入视图和自定义视图中的输入附件视图,以便在iOS文本编程指南中输入数据。

最终,我不得不开发自己的iOS8解决方案,放弃了iOS系统键盘,创建了一个模仿系统键盘的结构,创建了自己的键盘视图结构,动画化了它,编写了自定义代码来响应通常忽略键盘的系统事件,等等。对于苹果来说,允许它进入iOS8是一个非常可怕和代价高昂的错误,尤其是当定制键盘被认为是iOS8中最伟大的新事物之一时。

票数 0
EN

Stack Overflow用户

发布于 2017-10-01 22:33:48

现在是否需要子类UIInputViewController和UIInputView来实现自定义键盘(即使不是系统范围的键盘)?

我不知道它是否是必需的,但如果您打算在应用程序中创建自定义键盘,则建议将其子类为UIInputViewController。事实上,如果你打算做一个键盘扩展,苹果建议将此作为第一步:首先将其作为内部键盘并以这种形式进行测试,然后如果你愿意的话,很容易将它移植到键盘扩展中。

在这种情况下,您不需要子类UIInputView;您可以使用由输入视图控制器提供的输入视图。

这完全解决了您的问题,因为视图控制器是一个视图控制器,并获得与旋转和布局相关的标准视图控制器事件。此外,输入视图可以使用autolayout约束在内部布局,因此在调整键盘大小时,布局保持一致。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27832097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档