2013-04-17 81 views
2

我有一個基於文檔的應用程序。將菜單項綁定到第一個響應者的屬性

在我的文檔類,

  • 我有一個BOOL屬性:isActionPossible
  • 我也有一個IBAction:- (IBAction) doTheAction:(id)sender

現在,在MainMenu.xib,我想連接一個菜單項到動作。 當您知道Interface Builder中的First Responder「代表」您的應用程序的活動文檔時,這很容易。

但我應如何做才能可用性(「啓用物業」)與布爾屬性的活動文檔的isActionPossible這個項目菜單的綁定?

的確,在提出的清單中,並沒有「First Responder」。

回答

3

兩個選擇:

  1. 您可以實現菜單的驗證,看Apple's docs。簡而言之,在顯示菜單之前,系統將驗證請求發送到處理動作的相同對象,其中包括第一響應者。您只需在文檔類中添加一個返回BOOL的方法;在你的情況下你的isActionPossible屬性。
  2. 使用NSDocumentControllercurrentDocument屬性返回與主窗口關聯的文檔。然後您可以使用綁定來綁定<Document Controller>.currentDocument.isActionPossible。這種方法更通用,因爲您可以將標籤內容綁定到值等,並將其用於菜單綁定。
+0

「添加屬性到你的文檔控制器」:你的意思是我必須繼承'NSDocumentController'? – Colas

+0

@Colas - 沒有必要繼承'NSDocumentController',我已經更新了答案,以使其清晰。 – CRD

相關問題