我在Interface Builder中创建了一个NSView,其中包含两个控件,一个NSCollectionView和一个NSTableView。当我的应用程序运行并将此视图附加到窗口时,将在我的表视图上正确设置焦点并突出显示相应的行。但是,只要我打电话
[collectionView setSelectable:YES];
焦点将跳转到我的NSCollectionView并远离tableview。将焦点重新放回我的表视图的唯一方法是用鼠标单击它。
以下两行代码都不起作用
[tableView becomeFirstResponder];
[[self.view window] makeFirstResponder:tableView];
有人有什么想法吗? 如果我将集合视图设置为也可以在IB中选择,则会发生这种情况。
答案 0 :(得分:2)
好的,这段代码似乎“修复”它,但它似乎仍然是一个可怕的黑客。我注意到,如果我在一段时间后将其设置为可选择,则不会窃取焦点,所以现在我做了
-(void) loadView {
[super loadView];
[self performSelector:@selector(responderFix) withObject:nil afterDelay:0];
}
-(void) responderFix {
[collectionView setSelectable:YES];
}