我想知道如何在應用的首次運行中隱藏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:'方法 –