You would implement the NSTableView data source and delegate methods in a 
class. In a simple case in the app delegate to try them out and get used to 
them. 

Sent from my iPhone

> On Sep 12, 2015, at 9:28 PM, Alex Hall <mehg...@icloud.com> wrote:
> 
> IT! WORKS! Thanks so much for your help. Now I'll advance this project, to 
> test more aspects of this binding, and hopefully grasp things more completely 
> with practical examples I make.
> 
> Out of curiosity, you said you never use table view bindings anymore. If you 
> had to display the contents of an array or dictionary in a table, what would 
> you use instead?
>> On Sep 12, 2015, at 00:05, Quincey Morris 
>> <quinceymor...@rivergatesoftware.com> wrote:
>> 
>> On Sep 11, 2015, at 20:20 , Alex Hall <mehg...@icloud.com 
>> <mailto:mehg...@icloud.com>> wrote:
>>> 
>>> Okay, the error I'm seeing (about [ViewController count]) is the table 
>>> asking for how big it should be.
>> 
>> Actually, that’s not it, though you can be excused for thinking so.
>> 
>> What’s wrong is that you tried to add way too many bindings, in particular 
>> to the array controller. The only binding needed is the content binding. The 
>> managedObjectContext binding must NOT be used, because this is not a Core 
>> Data data model (but it probably makes no difference because it’s 
>> referencing nil and so I expect the array controller just ignores it). The 
>> selectionIndexes and sortDescriptors CANNOT be used in the project as it 
>> stands, because your view controller does not have any corresponding 
>> properties to bind to. The ‘count’ here is asking for the models’ opinion of 
>> the number of selected rows, or the number of sort descriptors. It’s not 
>> easy to tell which. In order to use these bindings, the view controller 
>> would have to have properties with names that match the model keys. Remember 
>> that the model key is just a string. It can’t cause any properties or 
>> methods to exist ― you have to do that part.
>> 
>> After fixing that, your app crashes with a different error, which is a kind 
>> of success because things got a lot further!
>> 
>> The later crash was because you bound the wrong thing (that is, the wrong 
>> “from” object) when trying to get hold of displayText. In the IB object 
>> hierarchy, you bound the thing called “Text Cell”, which is actually a 
>> prototype NSCell used for the column header. Normally you just treat is as 
>> part of IB’s implementation details and don’t modify it directly.
>> 
>> There’s a sub-hierarchy of 3 other things, called “Table Cell View” (which 
>> is a NSTableCellView, and it’s the prototype of the top level view for each 
>> cell), "Table View Cell” (which is your text field), and “Table View Cell” 
>> (yes, the same name, which is the NSCell that the NSTextField machinery uses 
>> and you similarly ignore in IB, in most cases).
>> 
>> So after deleting the incorrect “Text Cell” binding, your project runs, 
>> although the rows don’t show anything because the text field isn’t actually 
>> (wasn’t ever) bound to anything.
>> 
>> To complete this example ― to get the text from Tweet.displayText to be 
>> shown in the table ― you have to hook up the the text field (the one called 
>> “Table Cell View”, but not the NSCell of that name) via binding or whatever 
>> so that it resolves its value through the Table Cell View’s objectValue. 
>> That’s the “advanced” part, and I don’t remember exactly what to do because 
>> I never use table view content bindings any more. If you carefully follow 
>> through the example of table content bindings the table view programming 
>> guide, you should be able to figure this out, but you’re on your own. I 
>> don’t feel obliged to make your self-inflicted pain my self-inflicted pain. 
>> :)
>> 
>>> That makes way more sense--I was under the impression that the array 
>>> controller was asking on the table's behalf, that's why I expected it to 
>>> use countOfTweets().
>> 
>> As it turned out, the array controller wasn’t asking about the tweets at 
>> all. But if it was, it would use “count" because it’s an *array* controller, 
>> and the standard behavior that returns the count is “count”. Note that the 
>> table view doesn’t even know the name of the relevant property, because it’s 
>> hidden on the “other” side of the array controller, not to mention buried 
>> inside a binding. It’s “count” all the way down the line.
> 
> 
> --
> Have a great day,
> Alex Hall
> mehg...@icloud.com
> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/dangerwillrobinsondanger%40gmail.com
> 
> This email sent to dangerwillrobinsondan...@gmail.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to