且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在iOS自定义键盘中添加自定义通知?

更新时间:2022-10-26 08:53:24



组名必须与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!