Skip navigation.
 
mlRE: Help with NSArrayController, NSTableView and NSOpenPanel
FROM : Kamrin Dahlin
DATE : Fri Jun 23 23:58:30 2006

Hey George,

Just wanted to tell you that I finally got this working.

I created a File class to represent the individual files of the directories I am interested in, and then created another NSArrayController to manage those.  I followed the MailDemo again, exluding the NSObjectController and this time it all worked as expected.

The only thing I still don't understand is why I have to programmatically add my DirectoryModel objects to my first NSArrayController.  After I select the directory I am interested in and hit OK on the NSOpenPanel, I have to run through a loop that creates my DirectoryModel objects and then makes the [arrayController addObject:dirModel] call.  I am sure there must be away to do this with bindings, but I haven't found it yet.  I was hoping that by simply creating my DirectoryModel objects that KVO would handle adding their values to the first NSTableView through the first NSArrayController, but maybe it doesn't work that way.

Again, thx for the help -- nice to know that us newbies out here have people willing to lend a experienced hand.

Regards,

kam


-----Original Message-----
From: George Orthwein [mailto:george.<email_removed>]
Sent: Fri 6/23/2006 11:47 AM
To: Kamrin Dahlin
Cc: <email_removed>
Subject: Re: Help with NSArrayController, NSTableView and NSOpenPanel

You can achieve what you want by following the MailDemo example... 
instead of Mailboxes and Emails, you have directoryModels and 
directoryContents, so create another NSArrayController to manage the 
directoryContents array (set it up like the Emails controller).
http://cocoadevcentral.com/downloads/MailDemo-000084-end.zip
http://cocoadevcentral.com/articles/000084.php

But now I'm confused as you about your original question. Take the 
MailDemo example... I played around with it and I can't figure out 
why this binding for a table column doesn't work:
Mailboxes->selection->emails.properties.address

When this line in the controller gets the array fine:
NSLog(@"log: %@",[mailBoxController 
valueForKeyPath:@"selection.emails.properties.address"]);

Apparently, "mailboxes.selection.emails" is KVO compliant, but 
"mailboxes.selection.emails.properties" is not.

I don't know enough to explain exactly why. Maybe someone can clear 
this up and we'll both learn something. :)

George

Related mailsAuthorDate
mlHelp with NSArrayController, NSTableView and NSOpenPanel Kam Dahlin Jun 22, 22:43
mlRe: Help with NSArrayController, NSTableView and NSOpenPanel George Orthwein Jun 23, 04:31
mlRE: Help with NSArrayController, NSTableView and NSOpenPanel Kamrin Dahlin Jun 23, 04:50
mlRe: Help with NSArrayController, NSTableView and NSOpenPanel George Orthwein Jun 23, 15:45
mlRE: Help with NSArrayController, NSTableView and NSOpenPanel Kamrin Dahlin Jun 23, 17:33
mlRe: Help with NSArrayController, NSTableView and NSOpenPanel George Orthwein Jun 23, 20:47
mlRE: Help with NSArrayController, NSTableView and NSOpenPanel Kamrin Dahlin Jun 23, 20:51
mlRE: Help with NSArrayController, NSTableView and NSOpenPanel Kamrin Dahlin Jun 23, 23:58
mlRe: Help with NSArrayController, NSTableView and NSOpenPanel Kam Dahlin Jun 24, 01:15
mlRe: Help with NSArrayController, NSTableView and NSOpenPanel Scott Anguish Jun 24, 08:20