问题标签 [ios-app-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 回答
3940 浏览

ios - 在自定义键盘扩展中播放标准 iOS 键盘点击声音

我想知道 iOS 8 中是否有新的 API 可以让您在键盘扩展中播放标准键盘点击声音 - 并且只有在启用键盘点击并且设备没有静音时才播放。我没有见过这样的API,也没有看到任何关于这个的问题。

我确实知道在以前的 iOS 版本中,如果您实现了自定义输入或键盘附件视图(通过[[UIDevice currentDevice] playInputClick];在您采用UIInputViewAudioFeedback协议并返回YES之后enableInputClicksWhenVisible),这是可能的。这只有在那些情况下才有可能。键盘扩展不是这些。

是否可以使用自定义 iOS 键盘播放输入点击?

请注意,这个问题是相关的,但他们想要自定义声音,并且该解决方案不会尊重用户对播放键盘点击的偏好 - 即使该选项已禁用,也会始终播放它们。

0 投票
1 回答
1513 浏览

ios - 添加 Today Extension 编译失败

我最近开始在现有项目中构建一个 iOS 8.0 Today Extension,但我在开始时遇到了麻烦。在添加今天的扩展之前,我能够在 Xcode 6 中打开我的项目并运行没有任何问题。

但是,在我添加扩展名后,编译器会给我以下错误:

fatal error: 'Mantle.h' file not found Command /Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

更多细节:

  • 使用 Xcode 6 测试版 3
  • 使用 CocoaPods(Mantle.h 来自 pod)
  • 添加了今天的扩展,但我没有为它创建方案。我以前尝试过创建一个方案,但这也不起作用。
  • 我一直在尝试使用以前的应用程序目标运行。我也尝试过使用扩展目标,但无法构建并出现相同的错误。

编译错误

我创建了一个新项目,看看我是否有同样的问题,但我无法重现它。在我的项目中添加可能导致这种情况的扩展更改是什么?请注意,这是我现有文件中的错误,而不是我为扩展创建的新文件。除了将扩展添加到我的项目之外,我什么也没做。

0 投票
2 回答
3929 浏览

ios - iOS 8 Keyboard Extension - UIInputViewController can't add multiple views

I am thinking that the UIInputViewController on a keyboard extension has some limitations.

First problem:

I NEVER add a subview to inputView or view, yet when I create an instance of a view from a nib it AUTOMATICALLY sets that view as the default view. Not normal.

Second problem:

I have two separated views in a single XIB file.

enter image description here

One is for the letter keyboard (and its subviews) and the other is for the number keyboard (and its subviews). The only way I can get this keyboard to appear is to use:

This makes it visible, but the view does not accept user interaction. The keys from the underlying letter keyboard intercepts all the views.

If I do self.mainviewLetterKeyboard.hidden = true BOTH views disappear (letter and number keyboards). (This is where I think Apple may have a bug or issue - this should not happen)

I have similar problems if I have two separate XIB files each with their own keyboard. It appears that UIInputViewController does not like you to remove a view entirely from its superview.

Third Problem:

self.inputView doesn't seem to work. Adding subviews to it causes the keyboard to crash whereas self.view!.insertSubview seems to be the only way to get my number keyboard to appear

DESIRED RESULT

  1. User presses 123 button on keyboard
  2. Letter keyboard is removed from superview
  3. Number keyboard is added to UIInputViewController.view
  4. User presses ABC on number keyboard
  5. Number keyboard is removed from superview
  6. Letter keyboard is added to UIInputViewController.view

Anyone successfully add and remove MULTIPLE views on a keyboard extension?

0 投票
0 回答
395 浏览

ios - ios 8 上的快速自定义键盘

我使用 swift 制作了一个自定义键盘。在这样做的同时,我垂直制作。当我将设备旋转到横向时它会崩溃。键盘也是垂直的,跟其他的水平空间差不多。我不知道你们中是否有人在这里有解决方案或一些建议。

肖像 在此处输入图像描述

景观 在此处输入图像描述

0 投票
1 回答
1888 浏览

ios - 当设备在 Beta 3 中旋转时如何正确处理自定义键盘

所以我一直在研究这个自定义键盘一段时间,在 iOS 8 Beta 3 之前一切都很好。

我为 iPhone Portrait、iPhone Landscape、iPad Portrair、iPad Landscape 和 iPhone 4 Portrait 创建了 5 个 xib,这就是问题所在。

在我基于模板创建自定义键盘时创建的 KeyboardViewController:UIInputViewController 中。

我有这个私有方法来确定我应该加载哪个 xib,基本上我只是检查屏幕宽度,然后删除所有子视图并添加新的键盘视图。

首先,我尝试将此方法放入 - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator 但无论 Beta 2 还是 Beta 3 都不会被调用。

结果,我将该方法放在 viewWillLayoutSubviews: 中,它在 Beta 3 之前就像一个魅力。

在 Beta 3 中,当我旋转设备时,viewWillLayoutSubviews 会被无限期地调用。我想那是因为在 detemineKeyboardNib 方法中,最后一行是

这可能导致它一次又一次地调用 viewWillLayoutSubviews。但是,在 Beta 2 中并非如此。

然后我尝试在viewDidLayoutSubviews里面purdetermineKeyboardNib,同上。

所以我想知道在 Beta 3 中处理设备旋转的正确方法是什么。我相信 viewWillTransitionToSize:withTransitionCoordinator: 应该是正确的方法,但是当我旋转设备时它真的没有被调用......请在这里提供帮助。

谢谢,

0 投票
2 回答
4669 浏览

ios - 在 iOS 8 上使用自定义 UI 动画呈现和关闭共享扩展

我正在为带有自定义 UI 的 iOS 8 开发共享扩展,但它没有动画显示,我该怎么做?这是一个常规的 UIViewController。

此外,它出现在 iPad 上的全屏上,我希望它是一个模态视图控制器,它出现在屏幕中央并且不适合它,我该怎么做?

问候。

0 投票
5 回答
9593 浏览

ios - NSUserDefaults 不在 iOS 8 中的应用程序和自定义键盘之间存储值

我正在尝试在我的应用程序和自定义键盘扩展之间共享数据。我已经在主应用程序目标和自定义键盘目标中打开了应用程序组。在我的主应用程序中,我添加了一个具有以下内容的对象:

在控制台中打印出 [userDefaults dictionaryRepresentation] 表明该对象已被保存,调用 [userDefaults objectForKey:@"KEY"] 也是如此。

但是,当我尝试在自定义键盘扩展中访问此对象时:

该值为 nil 并且对 [userDefaults dictionaryRepresentation] 的调用不会显示上面保存的条目。我在 Xcode 6 beta 3 上。有什么想法吗?

更新 已在 Xcode 6 beta 5 中修复

0 投票
2 回答
1140 浏览

ios - iOS 强制 App 使用自定义键盘

我正在开发一个应用程序,它有一个text-field应该只接受的应用程序,numbers所以我创建了一个custom keyboard[0-9]作为输入接受的应用程序。要使用这个custom keyboard必须去 setting->keyboards然后接受这个,然后从应用程序打开特定的键盘。

这是否可以强制用户只打开custom keyboard而不进入设置选项。我希望每当用户打开应用程序时.. custom keyboard应该打开,而不是其他

0 投票
1 回答
817 浏览

ios - IOS 8:带有撤消和重做按钮的自定义键盘

我开发了一个 IOS 8 自定义键盘。我想给它“撤消”和“重做”功能,比如默认的系统键盘。我以不同的方式尝试过,但无法找到一个好的解决方案。

textDocumentProxy我们可以使用方法与文本输入对象交互

但是我找不到任何实现“撤消”和“重做”功能的方法。

0 投票
1 回答
711 浏览

ios - 使用今日扩展访问托管应用程序中的代码和数据

我想知道是否可以使用 iOS 8 中的今日扩展程序访问主应用程序中的功能。例如,媒体播放器是否可以在不打开应用程序的情况下将命令从其扩展程序发送到主应用程序(我知道有框架,但这只是一个例子)?我能看到的唯一解决方案是使用 URI,但问题是它会打开应用程序,这不是我正在寻找的行为。

因此,对于使用媒体播放器的完整示例:

  1. 今日屏幕中有一个扩展程序,可让您使用按钮播放/暂停。

  2. 用户按下按钮,应用程序在后台播放/暂停,无需离开通知中心。

有什么方法可以实现这种行为?