这些很难找到。各种 Cocoa 书籍甚至 Apple 的文档似乎到处都引用了它们,但我还没有看到有人将它们的解释统一到一个位置。答案是,Apple 在每个控制器类的文档中定义了它们:
- NSObjectController (文档)
- NSArrayController (文档)
- NSDictionaryController (文档)
- NSTreeController (文档)
- NSUserDefaultsController (文档)
这些文档也很有用:
这些“控制器”对象的继承看起来像这样(这对于发现一些“控制器键”选项的来源很重要):
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.
如果您发现文档中未为特定类定义控制器键,则它可能已在其超类中定义。以下是上述每个可用的所有控制器键(Xcode 3.2.1,Interface Builder 3.2.1):
// **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
因此,在列表中找到您想要的那个,查看该控制器类的文档,您会找到它的定义。如果它不存在,它可能是在文档中为其超类(可能是 NSObjectController)定义的。