如何使用 Cocoa Bindings 将复选框单元添加到 NSTableView?

发布于 2024-12-06 12:47:46 字数 648 浏览 2 评论 0原文

我是可可的新手。我有一个存储联系人的表。我没有使用 NSTableView 协议。我正在使用 Cocoa Bindings 和 Mutable Array 来存储在其中。问题是,我希望能够在每一行上都有复选框,然后选择我想要的联系人,并且能够获取选定的行。我该怎么做呢?当我尝试将复选框单元格放入表列时,没有任何效果。这是我的代码,我如何填充我的 NSTableView 联系人。那么应该怎么做才能添加复选框并处理它们呢?谢谢。

  NSMutableDictionary *dict =[NSMutableDictionary dictionaryWithObjectsAndKeys:
                       Name, @"Name",
                        Surname, @"Surname",
                         Education,@"Education",
                         nil];

    //controller for binding data to NSTableView
    [controllerContacts addObject:dict];
  //Table for viewing data.
    [viewTableOfContacts reloadData]; 

I'm new in Cocoa. I have a table that stores Contacts. I'm not using NSTableView Protocol. I'm using Cocoa Bindings , and Mutable Array for storing in it. The question is , I want to be able to have checkbox on each row, and select contacts that I want, and be able to get selected rows. How can I do it? When I try to put Check box cell in column of Table, nothing works. Here my code how I'm filling my NSTableView for contacts. So what should be done to be able add checkboxes and handle them? Thanks.

  NSMutableDictionary *dict =[NSMutableDictionary dictionaryWithObjectsAndKeys:
                       Name, @"Name",
                        Surname, @"Surname",
                         Education,@"Education",
                         nil];

    //controller for binding data to NSTableView
    [controllerContacts addObject:dict];
  //Table for viewing data.
    [viewTableOfContacts reloadData]; 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青朷 2024-12-13 12:47:46

如果你想通过绑定在每一行使用复选框,你需要在字典中定义一个与你的复选框绑定相对应的键。

在您的情况下,它可以是这样的-

  NSMutableDictionary *dict =[NSMutableDictionary dictionaryWithObjectsAndKeys:
                       Name, @"Name",
                        Surname, @"Surname",
                         Education,@"Education",
                         [NSNumber numberWithInt:0],@"selectedStudent",
                         nil];

然后将该列绑定为“selectedStudent”键。

另外,如果您只想检索选定的行,您可以像这样使用 NSPredicate -

NSPredicate *selectedStudentPredicate = [NSPredicate predicateWithFormat:@"selectedStudent == 1"];
NSArray *selectedStudents = [controllerContacts filteredArrayUsingPredicate:selectedStudentPredicate];

希望这会有所帮助!

If you want to use checkbox at each row via bindings, you need to define a key in dict corresponding to your binding for check box.

In your case, it can be like this-

  NSMutableDictionary *dict =[NSMutableDictionary dictionaryWithObjectsAndKeys:
                       Name, @"Name",
                        Surname, @"Surname",
                         Education,@"Education",
                         [NSNumber numberWithInt:0],@"selectedStudent",
                         nil];

Then bind that column for "selectedStudent" key.

Also if you want to retrieve only selected rows, you can use NSPredicate like this-

NSPredicate *selectedStudentPredicate = [NSPredicate predicateWithFormat:@"selectedStudent == 1"];
NSArray *selectedStudents = [controllerContacts filteredArrayUsingPredicate:selectedStudentPredicate];

Hope this helps !

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文