我正在尝试从主机应用程序更改我的自定义键盘背景,但是由于某些原因它不起作用。

我尝试了NSUserDefaults,但它不起作用,这是从主机应用程序按下按钮时的代码:

func buttonTapAction() {

    NSUserDefaults.standardUserDefaults().setInteger(1, forKey: "abc")
}

这样,我从磁盘读取值,但它总是执行其他条件:
override func viewDidLoad() {
    super.viewDidLoad()

    let abc = NSUserDefaults.standardUserDefaults().integerForKey("abc")
    if abc == 1 {
        self.view.backgroundColor = UIColor.redColor()
    }else{
        self.view.backgroundColor = UIColor(red: 241.0/255, green: 235.0/255, blue: 221.0/255, alpha: 1)
    }

    //Other code

}

我不知道我在做什么错。

HERE是我的完整项目。

最佳答案

为两个目标都启用应用组

第1步。

对于NuberWidget Target,请记住相同的步骤和组名。

第2步。

第三步

步骤4,储值代码

objective-c

NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.yourcompany.TodayExtensionSharingDefaults"];

[sharedDefaults setInteger:[self.textField.text integerValue] forKey:@"MyNumberKey"];
[sharedDefaults synchronize];   // (!!) This is crucial.

迅捷
let appGroupID = "group.yourcompany.TodayExtensionSharingDefaults"
let defaults = NSUserDefaults(suiteName: appGroupID)
 defaults.setInteger(1, forKey: "MyNumberKey")

第五步

objective-c
 NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.TodayExtensionSharingDefaults"];
    NSString* colornumber= [defaults objectForKey:@"MyNumberKey"];

迅捷
let appGroupID = "group.yourcompany.TodayExtensionSharingDefaults"
let defaults = NSUserDefaults(suiteName: appGroupID)
let number = defaults.integerForKey("MyNumberKey")

第6步。最后但没有列出,不要忘记启用“允许完全访问”启用。
转到键盘-> info.plist-> NSExtension-> NSExtensionAttributes


这样您可以解决您的问题。

关于ios - 在主机应用程序中按下按钮时,如何更改自定义键盘的背景颜色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31071857/

10-10 21:09
查看更多