如何在iOS自定义键盘中添加自定义通知? [英] How to add custom notification in iOS Custom Keyboard?

查看:254
本文介绍了如何在iOS自定义键盘中添加自定义通知?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在我的应用程序中添加了自定义键盘扩展程序并且运行完美。



我在我的网站中添加了 NSNotification 这样的键盘扩展类:

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeKeyboardColor)name:@keyboard_color 对象:无; 

现在我从我的视图控制器类调用此通知,如下所示:

  [[NSNotificationCenter defaultCenter] postNotificationName:@keyboard_colorobject:self]; 

现在我在我的键盘扩展类中添加了我的通知选择器方法,如下所示:

   - (void)changeKeyboardColor {
}

但它不起作用。我在模拟器中测试,我不知道如何在模拟器中测试键盘扩展。



谢谢。

解决方案



组名必须与group.XXXXX

启用应用程序组,如果它同时禁用了应用程序ID和扩展程序应用程序ID。





如果看起来无效,请更新现有的配置文件!



转到目标并提及组您创建的名称





转到键盘扩展并提及相同的组名





现在您完成了所有必需的设置。



在NSUserDefaults中的项目商店值

 让userd:NSUserDefaults = NSUserDefaults(suiteName:group.XXXXX)! 
userd.setObject(test11,forKey:key)
userd.synchronize()

// Objective-C

  NSUserDefaults * userd = [[NSUserDefaults alloc] initWithSuiteName:@group。 XXXXX]; 
[userd setObject:@test11forKey:@key]; //设置要共享的对象
[userd synchronize];

用于检索Extension类中的NSUserDefaults值

 让userd:NSUserDefaults = NSUserDefaults(suiteName:group.XXXXX)! 
print(userd.objectForKey(key))

// Objective-C

  NSUserDefaults * userd = [[NSUserDefaults alloc] initWithSuiteName:@group.XXXXX]; 
NSLog(@%@,[userd objectForKey:@key]);

快乐编码!


I have added Custom Keyboard extension inside my app and running perfect.

I have added NSNotification in my keyboard extension class like this:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeKeyboardColor) name:@"keyboard_color"  object:nil];

Now I am calling this notification from my view controller class like this:

[[NSNotificationCenter defaultCenter] postNotificationName:@"keyboard_color" object:self];

Now I have added my notification selector method in my keyboard extension class like this:

-(void)changeKeyboardColor{
}

But it is not working. I am testing in simulator and I don't know How to test keyboard extension in simulator.

Thanks.

解决方案

Create App Group from developer.apple.com

Group name must be like group.XXXXX

Enable App Group if it's disable for both app id and extension app id.

Update to existing provisioning profiles if it's look Invalid!

Go to Target and mention group name which you have created

Go to Keyboard extension and mention same group name

Now you done with all required settings.

In your project store value in NSUserDefaults

 let userd: NSUserDefaults = NSUserDefaults(suiteName: "group.XXXXX")!
 userd.setObject("test11", forKey: "key")
 userd.synchronize()

//Objective-C

NSUserDefaults *userd = [[NSUserDefaults alloc]initWithSuiteName:@"group.XXXXX"];
[userd setObject:@"test11" forKey:@"key"];//set the object you want to share
[userd synchronize];

For retrieving NSUserDefaults value in Extension class

 let userd: NSUserDefaults = NSUserDefaults(suiteName: "group.XXXXX")!
 print(userd.objectForKey("key"))

// Objective-C

NSUserDefaults *userd = [[NSUserDefaults alloc]initWithSuiteName:@"group.XXXXX"];
NSLog(@"%@",[userd objectForKey:@"key"]);

Happy Coding!

这篇关于如何在iOS自定义键盘中添加自定义通知?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆