在awakeFromNib
我有:
[projectArrayController addObserver:self
forKeyPath:@"selectionIndexes"
options:NSKeyValueObservingOptionNew
context:nil];
我有:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
NSLog(@"%@ forObject: %@",keyPath, object);
if([keyPath isEqualTo:@"selectionIndexes"]){
NSUInteger numberOfSelected = [[projectArrayController selectedObjects] count];
if(numberOfSelected >0){
if (numberOfSelected == 1){
ProjectModel *pm = (ProjectModel *)[[projectArrayController selectedObjects] objectAtIndex:0];
[pm setSelected:YES];
}
}
}
}
其中记录:selectionIndexes forObject: <NSArrayController: 0x1001cb6e0>[object class: ProjectModel, number of selected objects: 1]
但是当我运行我的程序时,我实际上不能点击其他任何东西。为什么是这样?我应该使用什么类型的委托?到目前为止,我尝试使用 tableview 委托和 collectionview 委托。
或者,我怎样才能让我的 NSCollectionView 成为第一响应者?