ReadMe.txt
DictionaryController |
==================== |
"DictionaryController" is a Cocoa application that demonstrates various ways to use the NSDictionaryController class. A dictionary controller transforms the contents of a dictionary into an array of key-value pairs that can be bound to user interface items such as columns of a table view. With the dictionary controller, you can specify which key-value pairs to be included or excluded for display as well as associate a localized displayable key to each pair. |
=========================================================================== |
SAMPLE REQUIREMENTS |
The supplied Xcode project was created using Xcode v3.2 with Mac OS X 10.6, running under Mac OS X 10.5.x or later. |
=========================================================================== |
ABOUT THE SAMPLE |
As a primary illustration, this sample shows how to display individual NSDictionary objects loaded from the file called people.dict. |
Each person dictionary looks like the following: |
<dict> |
<key>lastName</key> |
<string>Public</string> |
<key>firstName</key> |
<string>John Q.</string> |
<key>street</key> |
<string>679 North Michigan Ave.</string> |
<key>city</key> |
<string>Chicago</string> |
<key>state</key> |
<string>IL</string> |
<key>zip</key> |
<string>60611</string> |
<key>id</key> |
<string>459</string> |
</dict> |
An instance of NSDictionaryController is used to display this information in a table. Its content is bound to the current selection in the table view on the left side of the main window. Notice the last key/value pair named "id". This is of little concern to the user so the dictionary controller marks this as an "Excluded Key". Also the "lastName" and "firstName" keys will have a corresponding localized key loaded from Localizable.strings file. This feature allows keys from the dictionary to have displayable values seen by the user. |
=========================================================================== |
USING THE SAMPLE |
Build and run the sample using Xcode. |
1) In the main window, select any person in the table on the left to reveal their corresponding NSDictionary objects displayed in the table on the right which is bound to a dictionary controller. Details of the selection in the right hand table are shown in three text fields under the table. Notice the bindings for the three text fields: all are bound to the dictionary controller's selection, with the following model key paths: |
The first is bound with Model Key Path = "value" |
The second is bound with Model Key Path = "key" |
The third is bound with Model Key Path = "localizedKey" |
We achieve this since the objects managed by our dictionary controller are key-value pair objects that comply with the NSDictionaryControllerKeyValuePair informal protocol. |
2) In the File or Folder window, drop any file or folder from the Finder to the window's drop location to reveal its corresponding dictionary displayed in the table below it. |
=========================================================================== |
PACKAGING LIST |
AppDelegate.m |
AppDelegate.h |
NSApp's main delegate, manages MyWindowController and helps open the sample's ReadMe from the Help menu. |
This class is responsible for creating and opening both windows (MyWindowController, DropWindowController) for this sample. |
MyWindowController.h |
MyWindowController.m |
The NSWindowController object for the sample's main window. |
MainWindow.nib |
The nib for the MyWindowController. |
DropWindowController.h |
DropWindowController.m |
The NSWindowController object for the sample's "File or Folder" window. |
DropWindow.nib |
The nib for the DropWindowController. |
DropView.h |
DropView.m |
A custom NSView used to receive file or folder drops from the Desktop. This view resides in the DropWindow nib. |
people.dict |
A dictionary file containing the list of people to be displayed in this sample. |
Localizable.string |
Contains the localized key strings to be applied to the NSDictionaryController. |
Upgraded to support 10.6, now builds 3-way Universal (ppc, i386, x86_64) |
=========================================================================== |
CHANGES FROM PREVIOUS VERSIONS |
Version 1.1 |
- Upgraded to support 10.6, now builds 3-way Universal (ppc, i386, x86_64), removed one deprecated API. |
Version 1.0 |
- New Release |
Feedback and Bug Reports |
Please send all feedback about this sample by connecting to the Contact ADC page. |
Please submit any bug reports about this sample to the Bug Reporting page. |
Copyright © 2007-2011 Apple Inc. All rights reserved. |
Copyright © 2011 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2011-01-13