标签: ios-app-extension

KeyboardViewController NSLog IOS 8

我们可以在iOS 8(Xcode Beta版)的其他视图中使用NSlog进行登录.

但是,我不能在KeyboardViewController的键盘扩展中使用NSLog.它没有出现在日志中.

NSLog(@"键盘中的viewdidload");

我想知道如何实时检测/登录.

keyboard nslog ios ios8 ios-app-extension

3
推荐指数
1
解决办法
2410
查看次数

NSExtensionContext openURL不起作用

我正在尝试从扩展程序启动容器应用程序.(一个Action扩展)容器应用程序有一个工作URL方案(例如://),我可以通过在Safari中导航到该URL来验证这一点.

当我尝试使用 - [NSExtensionContext openURL:completionHandler:]来启动容器应用程序时,我得到一个不成功的回调,没有任何反应.

iOS 8 Beta 2更改说openURL方法现在应该可以正常工作,但这仍然是一个错误还是我做错了什么?

objective-c ios ios-app-extension

3
推荐指数
1
解决办法
5405
查看次数

iOS8自定义键盘问题

我现在正在开发iOS 8自定义键盘扩展,还有一些我无法弄清楚的问题.

首先,我认为UITextInputDelegate方法没有按照我的预期运作.

这听起来是正确的:selectionWillChange:selectionDidChange:方法应该当用户长时间打字印刷机区域叫什么名字?而textWillChange:textDidChange:方法应该每当文字字面上改变被称为?

实际上,我观察到的是,当我在文本输入区域中更改选择textWillChange:并被textDidChange:调用时,我无法得到其他两种方法在什么条件下被调用的线索.如果有人知道这些委托方法的用法,请告诉我.

其次,我知道该playInputClick:方法可用于虚拟化自定义键盘中的键盘点击声.由于这适用于正常情况,我发现无法在iOS 8自定义键盘扩展中应用.我的应用程序包含一个键盘视图控制器,以及将子类UIView添加到此视图控制器的自定义视图.我的方法是UIInputViewAudioFeedback在此自定义视图中声明委托,enableInputClicksWhenVisible方法返回YES,[[UIDevice currentDevice] playInputClick]设置调用的类方法,然后在需要键盘声音的任何地方调用此方法:这根本不起作用.

我的方法有什么不对吗?如果有人成功使用playInputClick方法,请分享你的智慧.

谢谢

keyboard ios ios8 ios-app-extension custom-keyboard

3
推荐指数
1
解决办法
2687
查看次数

无法在设备上加载今天的扩展程序

iOS8上.今天的扩展.尝试创建几行(2-5)的简单表视图.在模拟器中运行良好.加载tableView后的内存使用情况,根据Xcode分析器显示〜30M.

在iPhone 5S上使用最新的beta drop(5)运行相同的扩展程序时,tableView会出现并立即从屏幕上消失.Xcode中的控制台登录显示了许多"内存警告"消息.几次尝试加载扩展面板后,只会显示"加载失败".

有什么想法在这里发生了什么?

objective-c uitableview xcode6 ios8 ios-app-extension

3
推荐指数
1
解决办法
1408
查看次数

UIScreenEdgePanGestureRecognizer在自定义键盘扩展中不起作用

问题

我无法使用a UIScreenEdgePanGestureRecognizer来识别自定义键盘扩展中屏幕右边缘或左边缘的边缘滑动.我创建了一个新项目来测试它.其他UIGestureRecognizer人的工作很好,如下所述.

@implementation KeyboardViewController // A subclass of UIInputViewController
...
-(void)viewDidLoad {
  ...
  UIScreenEdgePanGestureRecognizer *gestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture)];
  [gestureRecognizer setEdges:UIRectEdgeAll];
  [self.view addGestureRecognizer:gestureRecognizer];
}

- (void)handleGesture
{
  NSLog(@"gesture handled");
}
Run Code Online (Sandbox Code Playgroud)

在Github上下载我的示例项目

可能的解决方法

如果我将其更改为a UIPanGestureRecognizerUITapGestureRecognizergesture handled在控制台中看到的.我可以使用UIPanGestureRecognizer只接受在屏幕边缘附近开始的手势.

Kiwi Keyboard使用这样的解决方法.

警告:UIPanGestureRecognizer如果self.view有背景颜色,唯一的作品.

uikit ios ios8 ios-app-extension ios-keyboard-extension

3
推荐指数
1
解决办法
1058
查看次数

应用扩展图标未显示

我有一个应用程序扩展名(Fileprovider-Extension),当我更改FileProvider位置时,该图标未显示(请参见屏幕截图)。这仅在iOS版本为8.4的设备(也包括模拟器)上发生!

在此处输入图片说明

我已经检查了:

  • 扩展名有自己的images.xcasset-catalog
  • 此图像目录为所有可能的分辨率设置了一个图标
  • 扩展目标的构建设置已更新为该资产目录,以及我想要作为扩展应用图标的图像集
  • 资产目录已经在扩展目标的“副本捆绑资源”阶段

当我(最初)点击更多按钮来管理我的位置时,我(也在iOS 8.4设备上)从主机应用程序中看到了AppIcon……这确实让我感到困惑。

另一台运行iOS 8.1的设备在该点上显示了一个图标,但这不是扩展名为xcasset-catalog的图标,而是显示了来自Host-Application的AppIcon。

我还尝试了以下问题的答案:SO:为什么我的ios8应用程序操作扩展应用程序图标没有显示,但没有任何帮助。

有人可以给我提示我看过的一点吗?

ios ios-app-extension

3
推荐指数
1
解决办法
2197
查看次数

为什么照片应用程序未显示在设备上的文档提供程序扩展中?

我正在应用程序中选择照片,我已经习惯UIDocumentMenuViewController显示文档提供程序的扩展名列表.此列表显示Dropbox,iCloud,GoogleDrive但不是原生照片应用,为什么?我的代码示例:

UIDocumentMenuViewController *menuVC = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[@"public.image"] inMode:UIDocumentPickerModeImport];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ios ios-app-extension document-provider uidocumentpickervc

3
推荐指数
1
解决办法
1501
查看次数

如何在动作表中呈现动作扩展而不是全屏模态视图?

根据文档,操作扩展显示在操作表或全屏模式视图中.但对于iPhone纵向方向,默认情况下始终为全屏.如何在iPhone纵向方向的操作表中显示操作扩展视图?

我曾尝试setPreferredContentSizeNSExtensionActionWantsFullScreenPresentation.两者似乎都没有影响iPhone纵向.

iphone objective-c ios ios-app-extension ios-extensions

3
推荐指数
1
解决办法
676
查看次数

iOS 自定义共享扩展:加载选定的图像

我正在为我的应用程序开发一个共享扩展程序,以便能够使用它直接从库中共享图像。我有一个视图控制器和布局设置,但我正在努力让所选图像显示在UIImageView视图控制器内部。

目前,我的getImage()情况如下:

func getImage() {
    if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
        if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
            itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in
                if let item = imageData as? Data {
                    self.imageView.image = UIImage(data: item)

                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

...但图像未加载。我在这里做错了什么?

ios swift ios-app-extension

3
推荐指数
1
解决办法
1279
查看次数

应用扩展上的“‘共享’不可用:在适当的情况下使用基于视图控制器的解决方案”

我有一个进行网络调用的类。我希望能够在主应用程序和应用程序扩展中使用此类。但是,在本课程中我使用:UIApplication.shared.isNetworkActivityIndicatorVisible.

由于shared在应用程序扩展中不可用,有没有一种方法可以让我使用类似的东西#available,这样我就不必仅仅因为这一行代码而复制此类?(我可以删除活动指示器,但我不想这样做,因为我想让用户知道网络调用何时发生)

我已经尝试按照我在另一个问题上找到的答案的建议添加预编译的宏,但编译仍然会抱怨。

ios swift ios-app-extension

3
推荐指数
1
解决办法
5408
查看次数