我在 Interface Builder 中创建了一个 NSView,其中有两个控件:一个 NSCollectionView 和一个 NSTableView。当我的应用程序运行并将此 View 附加到窗口时,焦点将正确设置在我的 TableView 上并突出显示相应的行。然而,一旦我打电话
[collectionView setSelectable:YES];
焦点将跳转到我的 NSCollectionView 并远离 tableview。将焦点重新放在表格 View 上的唯一方法是用鼠标单击它。
以下代码行均不起作用
[tableView becomeFirstResponder];
[[self.view window] makeFirstResponder:tableView];
大家有什么想法吗? 如果我在 IB 中将 CollectionView 设置为可选择,也会发生这种情况。
最佳答案
好吧,这段代码似乎“修复”了它,但它看起来仍然是一个可怕的黑客。我注意到,如果我将其设置为在一段时间后可选择,它不会窃取焦点,所以现在我这样做了
-(void) loadView {
[super loadView];
[self performSelector:@selector(responderFix) withObject:nil afterDelay:0];
}
-(void) responderFix {
[collectionView setSelectable:YES];
}
关于objective-c - 当 selectable=YES 时 NSCollectionView 窃取焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523567/