2013-03-20 42 views
0

我使用Xcode 4.2與SDK 10.6一起工作。如何將屬性綁定到外部控制器?

我想綁定一個「屬性」到存在「我的筆尖」的控制器。我該怎麼做:

  • 與Interface Builder?
  • 沒有它?

更確切地說,我想一個NSButtonenabled屬性綁定到一個真實存在「我的筆尖」的arrayController。我可以在界面構建器中綁定屬性的唯一對象是佔位符或對象。但是:

  • 我無法更改佔位符。
  • 如果我有一個arrayController到我的NIB,它將在我的NIB加載時創建。

爲什麼我在這種情況下?因爲:arrayController在我的NIB中;但該按鈕位於另一個NIB中。第二個NIB是我主視圖的子視圖。

感謝您的幫助:)

回答

0

我認爲我找到了答案。

一些符號:

  • MySubiewControllerMySubiewController.xib是夫妻,我想執行一些綁定OBJETS的。他們必須被認爲是一個子視圖。
  • 我的程序中的其他地方,「以上」,我已經有一個myMainArrayController。這是一個ArrayController,與我的數據鏈接,並「在我的主視圖中創建」。

現在:答案。

  • 首先,通過的MySubiewControllerinit方法來說,在一些變量(你不得不暴露在.h這個變量,作爲@property(這是更好)在你的程序中使用它之前)存儲您myMainArrayController。讓我們給這個變量命名(你可以給出任何名字)。例如:

    - (id)initWithNibName:(NSString *)nibNameOrNil 
           bundle:(NSBundle *)nibBundleOrNil 
        withArrayController:(NSArrayController *)anArrayController 
    { 
        NSLog(@"Creation of an instance of MySubiewController"); 
    
    
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
        if (self) { 
         myMainArrayController = anArrayController ; 
        } 
    
        return self; 
    } 
    

    這是在那裏你會告訴誰是arrayController已經exisiting你的「子視圖」。

  • File's Owner然後self.myMainArrayController做綁定。

  • 就是這樣!它應該工作!

相關問題