objective-c - 当 selectable=YES 时 NSCollectionView 窃取焦点

标签 objective-c cocoa nstableview nscollectionview nscontrol

我在 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/

相关文章:

cocoa - 如何创建过滤主 TableView 的 iTunes 风格源列表?

ios - 改变非交错浮点的间距

ios - Gracenote API - 没有轨道链接数据

ios - 确定当前屏幕是否有可见的导航栏

objective-c - 拖动调整 NSView(或其他对象)的大小

cocoa - 如何使用箭头键在 NSTableView 的行中向上/向下移动?

objective-c - 与 DCRoundSwitch 一起使用时 UIView 动画不起作用

ios - Objective-C 继承重复代码问题

macos - Unicode 与格式

macos - 如何在 NSTableView 底部添加工具栏?