gpt4 book ai didi

objective-c - 在 NSCollectionView 中顺序移动选择

转载 作者:行者123 更新时间:2023-11-28 06:12:46 26 4
gpt4 key购买 nike

默认情况下,NSCollectionView 中的选择在一行(或一列)内通过箭头键移动。

如何使选择顺序移动,就像按索引排列的项目一样?

Screenshot from developer.apple.com

最佳答案

我向 Apple 开发人员技术支持提出了同样的问题,在检查后他们说“我们的工程师已经审查了您的请求并确定最好将其作为错误报告处理。”。我向 Apple 的雷达提交了错误报告。至今没有回应。

我决定实现自己的解决方案。子类化您的 NSCollectionView 并覆盖 keyDown 事件。

swift 4

override func keyDown(with event: NSEvent) {
if event.modifierFlags.rawValue == 10617090 {
return
}
if event.isARepeat == true && event.keyCode != 123 && event.keyCode != 124 && event.keyCode != 125 && event.keyCode != 126 {
return
}
if event.keyCode == 123 || event.keyCode == 124 || event.keyCode == 125 || event.keyCode == 126 {
for index in self.selectionIndexes {
if event.keyCode == 124 && index < YOUR_DATASOURCE_ARRAY.count - 1 {
self.deselectItems(at: [NSIndexPath(forItem: index, inSection: 0) as IndexPath])
self.selectItems(at: [NSIndexPath(forItem: index + 1, inSection: 0) as IndexPath], scrollPosition: NSCollectionView.ScrollPosition.nearestHorizontalEdge)
return
}
if event.keyCode == 123 && index > 0 {
self.deselectItems(at: [NSIndexPath(forItem: index, inSection: 0) as IndexPath])
self.selectItems(at: [NSIndexPath(forItem: index - 1, inSection: 0) as IndexPath], scrollPosition: NSCollectionView.ScrollPosition.nearestHorizontalEdge)
return
}
}
}
super.keyDown(with: event)
}

这会中断左右箭头键输入并将选择移动到上一个/下一个单元格。自从“允许多项选择”必须为否。同时禁用修饰键,如 CMDControl

If you keep pressing right arrow, when selection arrives to last cell at right hand it jump one row down and keep moving or vice versa for left arrow.希望能帮助到你。

关于objective-c - 在 NSCollectionView 中顺序移动选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46049150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com