keydown - NSCollectionView 不会接受关键事件

标签 keydown first-responder nscollectionview

我有一个带有 3 个 NSTableViews 和 1 个 NSCollectionView 的窗口。集合 View 显示图像。我希望能够选择其中一个图像并使用键盘删除键将其删除,但我无法让 collectionview 成为第一响应者。我可以选择任何 tableviews 并覆盖 keyDown 以接受键盘输入,但这不适用于 collectionview。我已经在其他地方使用 makeFirstResponder(_:) 强制关注集合 View ,但在该应用程序中,窗口只有一个 View 。对我做错了什么有任何想法吗?

最佳答案

如果您可以在集合 View 中选择图像或使用键盘上的箭头键在集合 View 中导航 - 通常这意味着集合 View 是 firstResponder。

所以尝试启用选择,检查是否启用了集合 View 。

删除键也有可能是等效 key
read more here .如果是这样,您应该覆盖 performKeyEquivalent(with: )接收此类事件的方法

还有 NSCollectionView keyDown(with: )方法不会将关键事件向上传递到响应者链。要在它的 super View 中处理此类事件,您应该通过调用 self.nextResponder?.keyDown(with: event) 在集合 View 中覆盖它。对于您想自己处理的此类事件。

关于keydown - NSCollectionView 不会接受关键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46055483/

相关文章:

iphone - 无法在 iOS6 中的 UITextField 或 UITextView 中输入文本

Cocoa 响应程序链和上下文菜单单击

swift - 优化 NSCollectionView 满图的滚动速度和内存占用

cocoa - 绑定(bind)到 NSCollectionViewItem 会使 Xcode 崩溃

python - 如何有效地持有 Pygame 中的一个键?

javascript - 按清除按钮后计算器键盘输入显示困惑

cocoa - 为什么我的 NSWindow 只在第一次接收 mouseOver 事件?

swift - 从集合中引用文本标签查看项目

swift - 在 Swift 中使用 Tab 键选择下一个 NSTextField

javascript - Keydown 事件未从文档中删除且未在 div 元素上注册