2015-09-24 21 views
1

在我的應用程序中,我有一個選項卡式視圖來顯示和管理首選項。我想通過使用共享用戶默認值控制器來存儲它們。因此,我通過接口構建器創建了適當的綁定......不幸的是,我在第一個選項卡中創建的綁定工作,而我在其他選項卡中創建的綁定卻沒有。控制檯不顯示任何錯誤消息,所以我不知道問題出在哪裏。有人能幫我理解我做錯了什麼嗎?如何從多個選項卡視圖創建綁定到共享用戶默認值控制器

如果這可以幫助,我可以看到共享用戶默認值控制器被有效地放置在第一個選項卡視圖場景中。我試圖將它移動到標籤視圖(顯示各種標籤欄項目的視圖),但如果我這樣做,綁定即使在第一個標籤中也不起作用...那麼,如何通過共享用戶默認值控制器存儲值所有的標籤視圖?

回答

0

我不能說這是一個錯誤還是預期的行爲。我找到了一種方法來訪問NSTabView的多個選項卡中的共享用戶默認值;這裏對我來說是什麼在起作用:

在NSTabViewController子類補充一點:

override func viewWillAppear() { 
    super.viewWillAppear() 

    // make me the delegate of the Tab View 
    tabView.delegate = self 

    // give the initially selected tab a reference to the User Defaults 
    tabView.selectedTabViewItem?.viewController?.representedObject = UserDefaults.standard 
} 

override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) { 
    super.tabView(tabView, didSelect: tabViewItem) 

    // give the newly selected tab a reference to the User Defaults 
    tabViewItem?.viewController?.representedObject = UserDefaults.standard 
} 

然後在IB的綁定,請你在爲「綁定」選項卡,並設置「模式鍵路徑「代表Object.your_default_key。如果需要,請適當設置「值轉換器」。

相關問題