问题标签 [ios-keyboard-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
909 浏览

ios - 键盘扩展如何知道文档代理已更改?

iOS 上的键盘扩展是该类的子UIInputViewController类,具有textDocumentProxy与底层文档交互的属性。该textDocumentProxy对象公开了文档的一些重要特征,例如自动大写类型。问题是,键盘扩展如何知道底层文档何时发生变化?

例如,当我在消息应用程序中点击以撰写新消息时,“收件人”字段使用与消息正文输入框不同的输入特征。但是由于在将焦点从一个字段切换到另一个字段时键盘不会消失,因此文本文档代理对象会即时更改。键盘扩展能注意到这样的变化吗?

我尝试通过 KVO 观看textDocumentProxy[[self textDocumentProxy] autocapitalizationType]属性,但这不起作用。使用计时器检查autocapitalizationType属性会显示更改,但显然我想避免轮询解决方案。

0 投票
3 回答
634 浏览

ios - 如何使键盘扩展名更短(通过 info.plist 键)

我正在为 iOS 8 开发键盘扩展。

一切正常,但是当我在设备上运行时,键盘的名称是“myBoard - mBoard”。我希望它只是“myBoard”。

我的扩展 info.plist 是:

请帮我解决这个问题。

0 投票
2 回答
174 浏览

ios - 是否必须在IOS中为键盘扩展制作通用应用程序?

我为 iphone 开发了一个键盘扩展并提交给 Appstore。但它被拒绝了,因为 - 2.10:iPhone 应用程序也必须在 iPad 上运行而无需修改,以 iPhone 分辨率和 2X iPhone 3GS 分辨率运行。

我是否需要制作通用应用程序,或者只是将其扩展到 ipad 并提交到 App Store?

0 投票
1 回答
909 浏览

ios - 如何在 iPhone 6 Plus 中检测主机应用程序处于缩放模式还是正常模式?

假设 iPhone 6 Plus 显示屏处于标准模式(设置 > 显示 > 视图 > 标准),UIInputViewController inputView键盘扩展返回不同的宽度取决于主机应用程序是否针对 iPhone 6/iPhone 6 Plus 屏幕进行了优化。

例如,内置 Notes 应用程序返回宽度为 414 磅(未缩放),而 LINE 应用程序(从 v4.7.2 开始)返回 320 磅(缩放)。

键盘扩展如何确定主机应用程序窗口的宽度(例如,in viewDidLoad、 before viewDidiLoad)?

0 投票
0 回答
272 浏览

ios - 键盘扩展中的 UIMenuController

我需要在我的键盘扩展中显示带有 2 个操作的 UIMenuController。它必须在用户单击集合视图单元格上的按钮时出现(代码中的 cell.textButton)

当我试图显示它时,我的键盘视图控制器变为灰色,没有崩溃: 在此处输入图像描述

这是一个代码:

有人尝试将 UIMenuController 添加到键盘扩展中吗?谢谢

0 投票
2 回答
419 浏览

ios - 是否可以在 iOS 中启用没有键盘扩展的自定义键盘?

我已经为 iOS 构建了一个自定义键盘扩展,我希望用户能够在托管应用程序中试用它,看看他们是否喜欢它,然后再购买。它应该开箱即用,无需在“设置”中添加键盘。这可能吗?

0 投票
2 回答
432 浏览

ios - 复制到扩展的 Document 文件夹的文件会默认备份到 iPhone 上吗?

我正在为 iOS 8 编写键盘扩展。当第一次启动键盘时(不存在文件的先前副本),将一个 sqlite 数据库从捆绑包复制到 Document 文件夹:

万一用户将来将这台 iPhone 的备份恢复到新 iPhone 上,work.sqlite3文件是否会在新 iPhone 中恢复?

0 投票
2 回答
126 浏览

ios - 如何在不显示当前设备的情况下获取默认键盘的大小?

我正在为 iOS 开发自定义键盘扩展。键盘的大小应与每个设备上默认系统键盘的大小相匹配。

出于随附应用程序的目的,我需要知道默认系统键盘的大小(纵向和横向)而不实际显示键盘。有办法吗?

当然,我可以在所有设备上的模拟器中测量键盘的大小,而不仅仅是将其用作常数。但是,如果发布了新设备,则应用程序将无法在其上正常运行-其键盘大小将不会保持不变。

0 投票
1 回答
1275 浏览

ios - iOS 键盘扩展以“per-process-limit”终止

我正在尝试为 iOS 8 开发键盘扩展。除了我遇到的各种问题(很明显扩展只是事后的想法),在 iPhone 6 上开始测试后,我发现扩展是随机的以具有如下条目的崩溃日志终止:

请注意,这发生在 iPhone 6 和 iPhone 6 plus 上,但不会发生在功能较弱(RAM 较少,但不是 64 位)的 iPhone 4S 上。

当然,当您在设备上进行调试时,它不会发生。

此外,如果我运行与应用程序而不是扩展程序完全相同的代码,则不会发生这种情况。

终止似乎主要发生在使用 Quartz 绘制线条时,或者更容易的是,使用 Apple 的 CoreTextArcCocoa 类的派生类将属性字符串呈现为弧线。分析器显示从来没有 CPU 使用率,应用程序中的 RAM 使用率是适中的 15-25MB。当我使用其中几个弧形文本视图(主要与属性字符串相关)时,有很多分配/解除分配,所以我想也许快速分配(即使它们后面跟着解除分配)会触发一些终止扩展的 iOS 进程,因为担心占用太多内存?但是,如果我不知道确切的触发器,如何围绕它进行编码?当然我想不出调试这个问题的方法,因为它在我的应用程序之外。我尝试使用我的一张开发人员计划票向 Apple 开一张票。我要求任何形式的帮助,甚至只是对“每个进程限制”的更好解释。他们关闭并退款,没有回应。我重新打开,至少询问关闭第一张票的原因,他们关闭并退款。关于到底发生了什么或我可以尝试什么的任何想法?

此处参考来自同一崩溃日志的完整内存统计信息:

0 投票
1 回答
774 浏览

ios - 设备上的键盘扩展崩溃

也许你能帮助我?

我之前有一个键盘扩展可以在设备上工作,但在我的新项目中,它不起作用......在模拟器上,它工作正常。我在“设置”中添加了键盘,并允许在模拟器和设备上完全访问。

在设备上,当我从任何其他键盘切换到新键盘时,它会暂停一会儿,就像正在加载一样,并弹出 Xcode 错误:丢失与“Kjell Connelly 的 iPhone”的连接。恢复到“Kjell Connelly 的 iPhone”的连接并再次运行“com.2xpop.KeyboardRPG.Keyboard-RPG”,或者如果“com.2xpop.KeyboardRPG.Keyboard-RPG”仍在运行,您可以通过选择 Debug > 附加到它附加到进程 > com.2xpop.KeyboardRPG.Keyboard-RPG。

有时当我切换到新键盘时弹出窗口会立即发生,但有时会在键盘尝试加载几秒钟后发生。

我做了弹出窗口所说的,并尝试将调试器附加到进程,但它从未附加。

我认为应用程序中可能发生了太多事情,所以我注释掉了 viewDidAppear 和 viewDidLoad 方法中的所有代码(除了超级部分),这样至少键盘会显示为空白。仍然没有帮助。

任何人以前有这个问题或有任何想法?

普通应用程序按预期工作,但不是扩展程序,并且仅在设备上。