iOS8 UIImagePickerController在自定义键盘扩展中

时间:2014-12-08 23:30:36

标签: ios camera keyboard ios8 uiimagepickercontroller

我尝试在iOS8自定义键盘扩展程序中尝试使用嵌入式摄像头,该扩展程序已启用完全访问权限。除了叠加控件之外,嵌入式UIImagePickerController的视图始终是黑色的,所以一切都按照我的预期工作。这个应用程序想要访问你的相机"弹出显示和访问肯定被授予(三重检查)。

在XCode中,[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]返回true,并且除了相机本身之外的UIImagePickerController接口正确显示(例如,相机覆盖控件)。

我从XCode获得的唯一错误/警告如下:

  

快照未呈现的视图会导致空快照。确保在屏幕更新后快照或快照之前,您的视图至少呈现过一次。

我已经尝试在相机的初始化时添加超时,正如其他几个stackoverflow线程所建议的那样,但我没有修复那个警告或黑色相机屏幕问题。

- (void)viewDidAppear:(BOOL)animated
{
    [self performSelector:@selector(loadCamera) withObject:nil afterDelay:0.3];
}

- (void)loadCamera
{
self._picker = [[UIImagePickerController alloc] init];

self._picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self._picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self._picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self._picker.allowsEditing = NO;
self._picker.showsCameraControls = YES;
self._picker.view.userInteractionEnabled = YES;

self._picker.delegate = self;

self._picker.view.frame = self.view.bounds;
[self.view addSubview:self._picker.view];
[self._picker didMoveToParentViewController:self];
}

我也尝试用以下结果替换最后3行,结果相同:

[self presentViewController:self._picker animated:YES completion:^{
    NSLog(@"completed");
}];

有没有人知道是否可以在iOS8自定义键盘扩展中嵌入UIImagePickerController,如果是这样,我可能做错了什么?

1 个答案:

答案 0 :(得分:2)

显然,扩展无法访问摄像头或麦克风。

请在此处查看重复的主题,其中包含指向Apple文档的链接:iOS Custom Keyboard - camera not working