Search code examples
cocoacocoa-bindingsnsarraycontroller

Showing date from two rows in table view, respectively in two text fields, via binding


I have a class named as transaction in which one attribute is transactionDate which is of type NSDate.

I am using NSArrayController to display a list of transactions in a table view.

My requirement is-

I want to show date in first row in a text field labeled as "From" and date in last row in a text field labeled as "To".

My questions is-

Can I achieve this via binding in IB? If yes then how?

Thanks,

Miraaj


Solution

  • Yes, you can do this (or something like it), see the @min and @max array operators.

    Here's how to do a very simple version of this:

    1. Open Interface Builder - create a new application
    2. Add an NSArrayController, set it to automatically prepare content.
    3. Add a Table, label the two columns "name" and "age"
    4. Add a Button (labelled "+") and two Labels (change name to maxval, minval)
    5. Wire up the NSArrayController bindings as follows:

    alt text

    Here's the application running (just in interface builder "simulate" mode). To use it, click + then click on the top row of the table and put a name in the first column and an age in the second. Then repeat for a few more people.

    alt text

    This all looks a bit cryptic, but it is sufficient. I added the labels "Max Age" and "Min Age" for clarity in my version.