标签: ios-keyboard-extension

在iOS 8中设置自定义键盘高度的动画

我正在尝试使用以下代码在动画中增加自定义键盘的高度.但我无法弄清楚为什么变化会立即发生,忽略动画.

//In viewDidAppear

[self.view needsUpdateConstraints];
[UIView animateWithDuration:2 animations:^{ 
     CGFloat _expandedHeight = 500;
     NSLayoutConstraint *_heightConstraint = [NSLayoutConstraint 
          constraintWithItem: self.view 
          attribute: NSLayoutAttributeHeight 
          relatedBy: NSLayoutRelationEqual
          toItem: nil 
          attribute: NSLayoutAttributeNotAnAttribute
          multiplier: 0.0 
          constant: _expandedHeight];
     [self.view addConstraint: _heightConstraint];
     [self.view layoutIfNeeded];
}];
Run Code Online (Sandbox Code Playgroud)

ios ios-autolayout ios-keyboard-extension ios8-extension

5
推荐指数
1
解决办法
1076
查看次数

Google Maps iOS sdks出现错误:在这种情况下,后台执行会崩溃

我正在尝试将地图添加到自定义键盘扩展程序中.在我尝试在键盘中添加MKMapView之后,当地图视图出现时我立即崩溃.所以我试图将谷歌地图添加到键盘.但运气不好,我收到错误:

Terminating app due to uncaught exception 'GMSBackgroundAppException', reason: 'Background execution would crash in this scenario'

我从谷歌地图文档中复制了确切的代码,我在另一个空白项目中运行了这个代码,并且它有效.但它只是在自定义键盘扩展中不起作用.它给了我上面的错误.如果您仍想查看以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6];
    mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    mapView_.myLocationEnabled = YES;
    self.view = mapView_;

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView_;
}
Run Code Online (Sandbox Code Playgroud)

google-maps mkmapview ios google-maps-sdk-ios ios-keyboard-extension

5
推荐指数
0
解决办法
409
查看次数

在iPhone 6 Plus中如何检测主机应用程序处于缩放模式或普通模式?

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

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

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

ios ios8 iphone-6 iphone-6-plus ios-keyboard-extension

5
推荐指数
1
解决办法
863
查看次数

iOS 9 - 键盘在升级时将包名称显示为"(null)"

我有一个iOS键盘应用程序扩展,存在于应用程序商店中.最近,在测试将应用程序从版本1.0升级到1.1的效果时,我注意到当我按住标准iOS键盘上的地球图标时,我的应用程序名称显示为(null).还有其他人经历过这个吗?如果我在升级后打开键盘之前没有尝试打开配套应用程序,则会发生这种情况.如果我打开随播应用程序,这往往会消失.我在下面附上了一张图片.

键盘名称

更新:使用iOS控制台,我注意到以下日志条目:

Oct  5 16:16:40 Sarangan-Balasubramaniams-iPad SpringBoard[48] <Warning>: Installed apps did change.
    Added: {(
    )}
    Removed: {(
    )}
    Modified: {(
        "com.vijay.SuperKeyz"
    )}
Oct  5 16:16:41 Sarangan-Balasubramaniams-iPad pkd[116] <Warning>: INSTALLED:com.vijay.SuperKeyz.keykeykeyboard com.vijay.SuperKeyz.keykeykeyboard(1.1) <__NSConcreteUUID 0x17d93870> AF3C211B-0871-49F1-89EF-433510FE85C4 /private/var/mobile/Containers/Bundle/Application/24643C20-B44F-47A4-ADB5-57EA10FF9CF0/SuperKeyz.app/PlugIns/keykeykeyboard.appex
Oct  5 16:16:46 Sarangan-Balasubramaniams-iPad pkd[116] <Warning>: assigning plug-in com.vijay.SuperKeyz.keykeykeyboard(1.0) to keyboard sandbox
Oct  5 16:16:46 Sarangan-Balasubramaniams-iPad pkd[116] <Warning>: enabling pid=1662 for plug-in com.vijay.SuperKeyz.keykeykeyboard(1.0) 4DAC067D-4E00-48A0-86CB-7519AC750C8A /private/var/mobile/Containers/Bundle/Application/8CA610CD-672B-40ED-A564-08EB2D90FD11/SuperKeyz.app/PlugIns/keykeykeyboard.appex
Oct  5 16:16:46 Sarangan-Balasubramaniams-iPad MobileSMS[1662] <Warning>: Communications error: <OS_xpc_dictionary: <dictionary: 0x158928a0> { count = 2, contents = …
Run Code Online (Sandbox Code Playgroud)

ios ios-keyboard-extension ios9

5
推荐指数
1
解决办法
4201
查看次数

在发生深层链接的情况下,通过编程方式包含应用程序,从而返回到先前的应用程序的链接

我使用扫描按钮创建了键盘扩展名,以在包含的应用程序中打开条形码扫描仪。扫描完成后,它应导航回到初始应用程序,并且条形码数据应设置为启动键盘的文本字段的文本,然后单击扫描按钮。

在此处输入图片说明

有这个应用程序Scandit Wedge用同样的方式做。但我找不到实现相同目标的方法。请参考下面的GIF。

https://s3.amazonaws.com/id123-dev-ios/scandit.gif

任何帮助将非常感激。

deep-linking ios swift ios-keyboard-extension ios-extensions

5
推荐指数
1
解决办法
664
查看次数

如果没有RequestsOpenAccess,Fleksy如何更改键盘颜色?

适用于iOS 8的全新Fleksy键盘版本具有键盘扩展功能.可以从包含Flexy.app更改键盘扩展名的颜色,而无需打开RequestsOpenAccess模式(或UI中的"允许完全访问").当包含应用程序和扩展程序没有共享容器时,这怎么可能?

(现在我考虑一下,这也是一个巨大的安全问题.如果包含的应用程序可以与键盘扩展程序通信,也许它也可以读取你的击键?我不是说Fleksy这样做,只是它应该原则上是不可能的,除非扩展被授予完全访问权限.)

security ios ios-app-extension ios-keyboard-extension

4
推荐指数
1
解决办法
923
查看次数

为iOS自定义键盘添加语言词典以获得预测(暗示)文本

我正在尝试创建自定义iOS键盘.我使用UILexicon类来提供requestSupplementaryLexiconWithCompletion:方法提供的单词的基本词典.

但我想在键盘上添加Predictive Text.

我知道即使你尝试使用完全的努力也无法创建单词数据库.

所以,我相信没有人会用他们自己的键盘做到这一点.必须有一个预先创建的单词数据库,我知道.

即使我找到这些单词的数据库,我也不明白如何基于上一个单词提供建议.

任何人都可以指出一个好的,值得信赖的资源,它可以为我提供我想要的结果,并给我一个英语词典和其他语言的数据库.

请建议在应用程序中使用数据库的方法.

所有回复都非常有帮助.

keyboard prediction ios ios8 ios-keyboard-extension

4
推荐指数
1
解决办法
1375
查看次数

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

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

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

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

ios ios-app-extension ios-keyboard-extension

4
推荐指数
1
解决办法
788
查看次数

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
查看次数

键盘扩展在模拟器中有效,但在设备上无效

我正在开发自定义键盘扩展。到目前为止,它在模拟器和设备中都运行良好。

经过一些小的更改(添加import AudioToolbox一个类和一个命令)它突然停止在设备上工作。该应用程序编译并运行,但随后我激活了我的键盘 XCode 显示以下错误:

Lost connection to "My iPhone".
Restore the connection to "My iPhone" and run "xxx.xxx.xxx.xxx-Keyboard" 
again, or if "xxx.xxx.xxx.xxx-Keyboard" is still running, you can 
attach to it by selecting Debug > Attach to Process > xxx.xxx.xxx.xxx-Keyboard.
Run Code Online (Sandbox Code Playgroud)

这个错误看起来像是在拔出 iPhone 电缆时出现的错误,但在这种情况下电缆没问题。

我的键盘本身没有启动 - 激活时(使用地球键)有几秒钟的延迟(当我的键盘在调试中加载时这是正常的),然后显示以前活动的键盘。

该项目有一个月的开发时间,我完全堆栈,因此非常感谢任何帮助。

iphone ios ios-keyboard-extension

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