我想知道如何在应用的首次运行中隐藏Today按钮。如何隐藏应用第一次运行时的小部件?
我不想从application(_:didFinishLaunchingWithOptions:)
而是来自小部件的info.plist
或生命周期的方法把它藏在为了从控件逻辑中分离出的AppDelegate
。
有没有人有任何想法如何做到这一点?
我想知道如何在应用的首次运行中隐藏Today按钮。如何隐藏应用第一次运行时的小部件?
我不想从application(_:didFinishLaunchingWithOptions:)
而是来自小部件的info.plist
或生命周期的方法把它藏在为了从控件逻辑中分离出的AppDelegate
。
有没有人有任何想法如何做到这一点?
典型地,窗口小部件显示在今日视图当其具有内容 显示。如果当前正在运行的窗口小部件不再具有显示的内容,则它可以获得窗口小部件控制器并将setHasContent:forWidgetWithBundleIdentifier:方法的 中的标志设置为false。
你可以做的是做到以下几点:
检查由NSUserDefaults
如果it's首次应用程序正在运行,并在集setHasContent:forWidgetWithBundleIdentifier为false。下面的代码示例:
if !NSUserDefaults.standardUserDefaults().boolForKey("firstRun"){
// first run so do set setHasContent:forWidgetWithBundleIdentifier to false
// Set your NSUserDefaults firstRun value to false so it does not run again
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "firstRun")
}
我将这段代码添加到了我的窗口小部件的VC的'viewDidLoad()'中,而不是在应用程序的'AppDelegate'中(这正是我正在寻找的)。唯一的区别是我使用了'NSUserDefaults(suiteName:
是的,就像您添加它一样,如果您需要示例代码,我也可以帮助您。 –
@TeodorCiuraru @TeodorCiuraru我批准了你的编辑,因为它是与你的问题有关的答案,但是如果你想要改变一些基本的东西,看起来不像字体错误,先写评论,等待一天的答案。这是新答案的标准,以及更多赞扬的答案。考虑到在极少数情况下你可能是错的。 – hynekcer
你是什么意思? –
@RashwanL我的意思是不显示给用户。可以使用'setHasContent:forWidgetWithBundleIdentifier:'方法 –