2

我在 Interface Builder 中创建了一个 NSView,其中包含两个控件,一个 NSCollectionView 和一个 NSTableView。当我的应用程序运行并将此视图附加到窗口时,焦点将正确设置在我的表格视图上并突出显示相应的行。但是,一旦我打电话

[collectionView setSelectable:YES];

焦点将跳转到我的 NSCollectionView 并远离 tableview。让焦点回到我的表格视图的唯一方法是用鼠标单击它。

以下代码行均不起作用

[tableView becomeFirstResponder];
[[self.view window] makeFirstResponder:tableView];

有人有想法么?如果我在 IB 中也将 collectionview 设置为可选,则会发生这种情况。

4

1 回答 1

2

好的,这段代码似乎“修复”了它,但它仍然看起来像是一个可怕的黑客攻击。我注意到,如果我在一段时间后将其设置为可选,它不会窃取焦点,所以现在我这样做了

-(void) loadView {
    [super loadView];
    [self performSelector:@selector(responderFix) withObject:nil afterDelay:0];
}
-(void) responderFix {
    [collectionView setSelectable:YES];
}
于 2013-08-30T01:59:24.910 回答