NSCollectionView 在 selectable=YES 时窃取焦点
Posted
技术标签:
【中文标题】NSCollectionView 在 selectable=YES 时窃取焦点【英文标题】:NSCollectionView stealing focus when selectable=YES 【发布时间】:2013-08-30 01:35:28 【问题描述】:我在 Interface Builder 中创建了一个 NSView,其中包含两个控件,一个 NSCollectionView 和一个 NSTableView。当我的应用程序运行并将此视图附加到窗口时,焦点将正确设置在我的表格视图上并突出显示相应的行。但是,只要我打电话
[collectionView setSelectable:YES];
焦点将跳转到我的 NSCollectionView 并远离 tableview。让焦点回到我的表格视图的唯一方法是用鼠标单击它。
以下代码行都不起作用
[tableView becomeFirstResponder];
[[self.view window] makeFirstResponder:tableView];
有人有什么想法吗? 如果我在 IB 中也将集合视图设置为可选,则会发生这种情况。
【问题讨论】:
【参考方案1】:好的,这段代码似乎“修复”了它,但它仍然看起来像一个可怕的 hack。我注意到,如果我在一段时间后将其设置为可选,它不会窃取焦点,所以现在我这样做了
-(void) loadView
[super loadView];
[self performSelector:@selector(responderFix) withObject:nil afterDelay:0];
-(void) responderFix
[collectionView setSelectable:YES];
【讨论】:
以上是关于NSCollectionView 在 selectable=YES 时窃取焦点的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在Swift中以编程方式设置NSCollectionView?
NSCollectionView 是不是与 CoreData 兼容