当按钮被按入主机应用程序时,如何更改自定义键盘的背景颜色?

时间:2015-06-26 11:18:10

标签: ios swift cocoa-touch custom-keyboard

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

我尝试了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 个答案:

答案 0 :(得分:2)

为两个目标启用应用组

第1步。

enter image description here

对于NuberWidget目标,相同的步骤和组名应该相同。

第2步。

enter image description here

第3步。

enter image description here

步骤4.存储值的代码

目标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")

第5步。

目标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.最后但不是列表不要忘记启用&#34;允许完全访问&#34;启用。 转到键盘 - &gt; info.plist - &gt; NSExtention - &gt; NSExtensionAttributes

enter image description here 有了它,你可以解决你的问题。