Estos son difíciles de encontrar. Parecen referenciados en todas partes por varios libros de Cocoa, e incluso por los documentos de Apple, pero no he visto a nadie unificar una explicación de ellos en un solo lugar.La respuesta es, Apple los define dentro de la documentación para cada clase controlador:
- NSObjectController (doc)
- NSArrayController (doc)
- NSDictionaryController (doc)
- NSTreeController (doc)
- NSUserDefaultsController (doc)
Estos documentos también son útiles:
de herencias de estos objetos "controlador" se parece a lo que (esto es importante para descubrir donde algunas de las opciones de "tecla Controller" proceden de):
NSController -> NSObjectController
NSController -> NSObjectController -> NSArrayController
NSController -> NSObjectController -> NSArrayController -> NSDictionaryController
NSController -> NSObjectController -> NSTreeController
NSController -> NSUserDefaultsController
// Note: NSController is an abstract class (don't worry about it). It inherits from NSObject.
Si encuentra una clave del controlador no definida en los documentos para una clase en particular, es probablemente definido en su superclase. A continuación se presentan todas las teclas del controlador disponibles para cada una de las anteriores (Xcode 3.2.1, 3.2.1 Interface Builder):
// **NSObjectController**
canAdd
canRemove
isEditable
selectedObjects
selection
// **NSArrayController**
arrangedObjects
canAdd
canInsert
canRemove
canSelectNext
canSelectPrevious
filterPredicate
isEditable
selectedObjects
selection
selectionIndex
selectionIndexes
sortDescriptors
// **NSDictionaryController**
arrangedObjects
canAdd
canInsert
canRemove
canSelectNext
canSelectPrevious
filterPredicate
isEditable
selectedObjects
selection
selectionIndex
selectionIndexes
sortDescriptors
// **NSTreeController**
arrangedObjects
canAdd
canAddChild
canInsert
canInsertChild
canRemove
isEditable
selectedObjects
selectedNodes
selection
selectionIndexPath
selectionIndexPaths
sortDescriptors
// **NSUserDefaultsController**
hasUnappliedChanges
values
lo tanto, encontrar el que está en la lista que desea, busque en la documentación de dicha controladora clase, y encontrarás su definición. Si no está allí, probablemente esté definido en los documentos para su superclase (probablemente NSObjectController).
Gracias Dave, ¡esto es muy útil! – Elisabeth
¡Eres más que bienvenido! Además, aquí hay otra pregunta similar a esta que también tiene algunas buenas respuestas: http://stackoverflow.com/questions/595257/what-does-controller-key-mean-in-interface-builder-inspector-bindings/2440523 –