简介:我正在为我的母语亚美尼亚语开发键盘扩展.
键盘的功能应该与系统默认键盘类似.
我想在键盘内部使用的功能之一是在触摸的按钮上显示弹出窗口,就像用于英文键盘一样

如您所见,可以在键盘框外绘制弹出窗口
问题:我已成功地在键盘框架内成功绘制弹出窗口,但它被屏蔽到键盘框架,即我无法在键盘框架外部绘制弹出窗口的某些部分.即

我的尝试:我试过设置属性view.layer.masksToBounds = NO;的UIInputViewController实例,但还是我得到了我的分机掩盖.官方文档在这个问题上还没有完全描述性.虽然这可能是iOS键盘扩展限制之一.
有关如何绘制UIInputViewController外框的任何建议,参考都欢迎?
我正在开发一个具有键盘扩展的应用程序,在使用键盘扩展时(例如:当我使用切换键盘按钮时),扩展将通过 viewDidDisappear ,在这种情况下我知道我可以清理键盘并且它的所有视图都被释放,并且内存被释放。在其他用途中(例如:使用 Notes 应用程序并按“完成/后退”按钮时),扩展程序将通过 viewWillDisappear但不通过viewDidDisappear,因此在这种情况下,我不会清洁键盘,因为它是没有达到我的清洁方法,因此它不会被释放。
\n\n此时,我希望当我通过返回注释返回键盘时,我会收到之前的UIInputViewController以及我已经构建的视图。
\n\n不幸的是,此时isViewLoaded()方法返回false,并且我的UIInputViewController再次通过 loadView 方法,因此重新构建所有视图,结果应用程序内存不断增长,直到在某个时刻我达到令人讨厌的didReceiveMemoryWarning方法回调。
\n\n我想以某种方式恢复我在首先初始化的UIInputViewController中为键盘创建的视图。有人知道这是否可能以及如何实现?
\n\n我正在研究RestorationIdentifier来完成此任务,如果我错了,请纠正我,但这是与普通UIViewController一起使用的,不能与UIInputViewController一起使用一起使用,因为不是我的 AppDelegate 负责启动它。
\n\n通过进一步的研究,我得出的结论是,无论您进行什么操作:
\n\n和其他场景一样,UIInputViewController类总是经过init方法。
\n\n根据我对面向对象编程的理解,这意味着无论谁调用我的键盘进行收割,都使用构造函数来执行它,并基本上创建键盘的新实例。这意味着在任何行为中键盘第一次重新出现时我永远不会有可用的视图,并且我总是必须为新实例构建键盘视图并清理旧实例。这是正确的吗?或者有没有办法保留 UIInputViewController 的视图?
\n我正在使用obj-c,Xcode 7(也试过6)制作自定义键盘.问题是键盘加载速度太慢.
我试图加载完全空UIInputViewController的视图 - 没有变化.我没有xib,没有重型资源.如果有人知道这个问题的任何解决方案,请写一个答案.每次键盘滞后,用户都不会高兴.
我正在为 iOS 开发一个自定义键盘,它将有自己的搜索字段(类似地由 PopKey 实现)。
我的键盘的文本字段能够通过使用 来获得焦点becomeFirstResponder,并且我能够通过使用 来放弃它resignFirstResponder。然而,在我放弃焦点后,尽管触摸了表单,主机应用程序仍很难重新获得焦点。应用程序的文本字段仍将显示文本光标闪烁。
有任何想法吗?谢谢