簡體   English   中英

如何將屬性綁定到外部控制器?

[英]How to bind a property to an external controller?

我使用帶有Xcode 4.2的SDK 10.6。

我想將“屬性”綁定到“超出筆尖”的控制器。 我該怎么辦:

  • 與界面生成器?
  • 沒有它 ?

更准確地說,我想將NSButtonenabled屬性綁定到“不在筆尖之內”存在的arrayController。 在界面構建器中,我可以綁定屬性的唯一對象是占位符或對象。 但是:

  • 我不能更改占位符。
  • 如果我的NIB上有一個arrayController,它將在加載我的NIB時創建。

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

感謝幫助 :)

我想我找到了答案。

一些符號:

  • MySubiewControllerMySubiewController.xib是我要執行一些綁定的MySubiewController.xib對。 必須將它們視為子視圖。
  • 在程序的其他位置“上方”,我已經有一個myMainArrayController 它是一個ArrayController ,與我的數據鏈接,並“在我的主視圖中創建”。

現在:答案。

  • 首先,通過實例init的方法MySubiewController ,存儲您myMainArrayController (你必須在揭露這個變量某些變量.h ,為@property在你的程序中使用它之前(這是更好))。 讓我們給這個變量起相同的名字(你可以給任何名字)。 例如 :

      - (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

  • File's Owner綁定,然后與self.myMainArrayController綁定。

  • 而已!!! 它應該工作!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM