问题标签 [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 投票
3 回答
78 浏览

ios - 在为两个目标配置的类中定义一段代码以仅在其中一个目标中运行

我正在开发一个自定义键盘项目。在这个项目中,我有两个目标(应用程序和键盘目标)。现在我构建了一个类,负责处理两个目标的网络数据:

如果您查看handleRequestResults方法,您将看到以下部分:

在应用程序目标中,我在预处理器宏部分定义了以下内容:

在此处输入图像描述

现在,当我在调试中运行应用程序并使用“po APPLICATION”时,我得到了相关的打印,而在键盘扩展中,我得到了以下错误:error: <EXPR>:1:1: error: use of unresolved identifier 'APPLICATION'

意味着配置被正确读取。

问题/问题是:在应用程序的运行中,此代码仍未执行。有人知道为什么吗?我在这里想念什么?

0 投票
2 回答
946 浏览

ios - Crashlytics 在 iOS 键盘扩展中不起作用

我正在使用最新版本的FabricFabric/Crashlyticscocoapods(因此,根据调试器输出为 3.0.8 版)将 Crashlytics 集成到 iOS 键盘扩展中。最近,它只是停止报告键盘扩展的崩溃。我检查了初始化 Crashlytics 的代码和我的项目的 Crashlytics 脚本构建阶段,两者都已执行(并且构建阶段在我的键盘扩展的目标中)。

很难判断这是否相关,但是当我运行应用程序时,我看到 Crashlytics 尝试提交崩溃,

[Crashlytics:Crash:Reports] Submitting async /var/mobile/Containers/Data/PluginKitPlugin/[some-numbers]/Library/Caches/com.crashlytics.data/com.myCompnay.myApp.extension/v3/prepared/[some-more-numbers-idk-if-they're-supposed-to-be-secret].multipartmime

然后阅读相应数量的消息

2015-06-25 09:22:33.063 com.myCompany.myApp.extension[5975:1649412] Attempted to create a task in a session that has been invalidated

让我相信这是 Crashlytics 中的一个错误。最新版本的变更日志提到了后台任务的问题

Fixed an issue that would incorrectly default to enabling NSURLSession background uploads in extensions

这有关系吗?有没有人遇到并解决了这个问题?

0 投票
0 回答
220 浏览

ios - iOS 键盘扩展的内存问题

我正在开发一个自定义键盘扩展。该扩展在 UICollectionView 中显示一组图像,并且可以选择在主机应用程序中复制和粘贴图像。当我复制并粘贴图像时,键盘消失了,但奇怪的是当键盘再次出现时,消耗的内存增加了。键盘消失时不会卸载吗?

我已经对其进行了分析,似乎没有内存泄漏。有没有其他人观察到这一点?

0 投票
0 回答
191 浏览

ios - 使用 .xib 时将自定义键盘的高度扩展到 216 以上

我有一个使用接口的自定义键盘布局在一个.xib文件中(不使用自动布局)。目前,我无法将界面的高度扩展到超过默认的 216 点。

我曾尝试使用 Apple 建议的方法来限制键盘的高度NSLayoutConstraint constraintWithItem: self.view...,但这只会导致键盘根本不出现。

这就是我在我的KeyboardViewController.m(的子类InputViewController)中初始化接口的方式

0 投票
1 回答
1659 浏览

ios - 如何从 iOS 键盘扩展中检测到通过在 iMessage 中点击“发送”等操作清除了文本字段?

在我的 iOS 键盘应用程序中,我目前有一个文本建议栏,很像默认的 iOS 8 键盘的建议栏。每当用户执行清除文本字段的操作时(例如,当有人点击“发送”时,我想清除建议栏上的所有文本每当用户执行清除文本字段的操作时(例如,当有人在 iMessage 或 Whatsapp 上

由于点击“发送”不是击键,我想知道是否有办法在清除文本字段时从键盘检测。

我曾尝试检测空文本""或换行"\n",但到目前为止这还没有奏效。

编辑:我知道这可以通过第 3 方 iOS 键盘实现,如此处所示(来自Themeboard

在点击发送之前,请注意建议栏中的文本。
在点击发送之前

点击“发送”后立即。建议栏被清除。
点击发送后

0 投票
2 回答
1638 浏览

ios - 自 iOS 8.3 *从容器应用程序*以来,如何检查“允许完全访问”

在 iOS 8.3 之前,检查是否授予键盘扩展“允许完全访问权限”的方法是通过容器应用程序中的以下代码:

但是,正如对这个流行的 SO 回答线程的评论指出的那样,从 iOS 8.3 开始,即使未授予完全访问权限,应用程序也可以从共享组容器中读取,因此上述代码始终返回 true。但是,仅当“允许完全访问”打开时才授予写入权限。

我已经尝试根据 Apple 的文档列出所有粘贴板,UIPasteboard但它没有说明哪些是可访问的。对此的任何见解都非常感谢。

0 投票
0 回答
83 浏览

ios - 启动键盘扩展的“配置文件”

在“产品”菜单中有一个“配置文件”项目,但它不能用于键盘扩展
有人知道我如何分析键盘扩展吗?

0 投票
1 回答
2523 浏览

ios - 使用自动布局的 UILabel 最大高度

我在自定义键盘扩展中有一个多行 UILabel。我希望这个标签能够增长以将内容填充到一定高度,此时我希望它只是切断其余的文本。

因为键盘根据设备和方向有不同的高度,我不能只设置一个简单的less than or equal height constraint.

我尝试将标签的底部限制在下面按钮的顶部,使用greater than or equal constraint. 这在一定程度上有效,但会导致键盘尺寸变大,而不是标签被迫切断其文本。

如何在不直接在标签上使用高度约束的情况下将标签强制设置为最大高度?

0 投票
0 回答
79 浏览

ios - 约束不适用于键盘扩展中的视图

我如何设置约束

在此处输入图像描述

我如何添加这个 uiview

它在模拟器中的样子

在此处输入图像描述

有没有人有类似的问题?

0 投票
1 回答
264 浏览

ios - 添加组后,键盘扩展无法再提交到 iTunes

我正在创建我的第二个键盘扩展应用程序。我已经通过 iTunes TestFlight 提交了几个月的测试,没有任何问题。但是做了两次修改后,就不再提交了。我收到错误“无法找到或生成匹配的签名资产,并且由于以下问题而无法这样做。

“为“Applications/spkapp.app/Plugins/spk.appex”找到不匹配的配置文件

没有一个有效的配置文件允许指定的权利:beta-reports-active、com.apple.security.application-groups"

我所做的两个更改是捆绑显示名称和添加组权利。我的扩展程序和应用程序的应用程序 ID 都激活了组并设置为同一个组。

我试过了

1) 将捆绑显示名称恢复为以前的名称。

2)重建所有配置文件数十次

3) 从头开始​​创建新的配置文件。

4) 在 Xcode 中刷新配置文件,甚至下载并安装新配置文件并手动删除旧配置文件。

5)清理/删除派生数据/重新启动Xcode/重新启动OSX

6) 将它与我使用 Groups 权利的运输键盘进行比较。从权利文件到项目设置到供应配置文件再到 App ID 设置,一切都匹配。

我认为问题显然与组有关,因为它是新添加的。但我确实看过技术问答 QA1830,但它似乎没有帮助,因为我有一个商店配置文件并且它正在工作,所以 beta-reports-active 标志似乎是一个虚假错误。

还有其他建议吗?