0

我使用 SDK 10.6 和 Xcode 4.2。

我想将“属性”绑定到“在我的笔尖之外”存在的控制器。我该怎么办:

  • 使用界面生成器?
  • 没有它 ?

更准确地说,我想将enableda 的属性绑定NSButton到“在我的 nib 之外”存在的 arrayController 上。在界面生成器中,我可以绑定属性的唯一对象是占位符或对象。但 :

  • 我无法更改占位符。
  • 如果我的 NIB 有一个 arrayController,它将在我的 NIB 加载时创建。

为什么我会出现这种情况?因为:arrayController 在我的 NIB 中;但该按钮位于另一个 NIB 中。这第二个 NIB 是我的主视图的子视图。

感谢帮助 :)

4

1 回答 1

0

我想我找到了答案。

一些符号:

  • MySubiewController并且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

  • 就是这样!!!它应该工作!

于 2013-03-20T15:25:10.193 回答