2

我是可可的新手。我正在显示一个简单的 Tableview,其中填充了 NSMutableArray,它绑定到 NSArrayController,如下所示

[_arrController bind:@"contentArray" toObject:self withKeyPath:@"dataArray" options:nil];

这里 _arrController 是我的 NSArrayController 的 IBoutlet,而 dataArray 是我的 NSmutableArray 和数据。

当我以编程方式进行绑定时,我成功地填充了 Tableview。但是我无法通过 Interface Builder 实现相同的绑定。

我在我的 IB 中选择了 ArrayController,进入绑定部分,并尝试通过将模型键路径选择为 dataArray 在控制器部分下进行绑定。但是,我的表没有填充数据,通过编程我可以轻松地完成我的任务。任何帮助表示赞赏。

4

2 回答 2

6

这是一个可以帮助您解决问题的示例。

  1. iVar -> 演示数组
  2. IBOutlet -> demoArrayController

@interface ExAppDelegate : NSObject

@property (assign) IBOutlet NSWindow *window;

@property (strong) NSMutableArray *demoArray;

@property (strong) IBOutlet NSArrayController *demoArrayController;

@结尾

下面是同一个类的实现

@implementation ExAppDelegate
@synthesize demoArray;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
    self.demoArray = [NSMutableArray array];
    for (int i=0 ; i <= 10 ; i++)
    {
        NSMutableDictionary *temp = [NSMutableDictionary dictionary];
        [temp setObject:[NSNumber numberWithInt:i] forKey:@"number"];
        [temp setObject:[NSString stringWithFormat:@"Demo %d",i] forKey:@"demoKey"];
        [self.demoArray addObject:temp];        
    }
    [self.demoArrayController rearrangeObjects];
}

@end

现在,UI 绑定 - >

  1. 如下图所示的数组控制器绑定

在此处输入图像描述

  1. 表视图列绑定。

在此处输入图像描述

笔记:

1. 确保在将对象添加到绑定到 Array Controller 的数组后调用 Array Controller 上的重新排列对象。

[self.demoArrayController 重新排列对象];

2. 在 Table View Column Bindings 中,确保您选中了“Continuous Updates Value”复选框。

我希望这能解决问题。

于 2013-08-27T09:22:34.200 回答
1

步骤如下(以防万一你错过了什么):

  • 添加阵列控制器
  • 将阵列控制器的 Mode 设置为 Class 并添加 Class 名称。
  • 添加要绑定的密钥

如果您正在使用基于视图的表格视图。执行以下操作:

  • 单击表格视图中的列(通常需要在表格视图上单击三下)
  • 检查绑定检查器中的值
  • 控制器键:ArrangedObjects 和您的模型键路径。
  • 在表格视图单元格中标记您的静态文本。
  • 将您的静态文本绑定到表格单元格视图和您的模型键路径。

希望能帮助到你!

于 2013-08-27T08:06:36.553 回答