cocoa - Cocoa 的 NSTableView 中没有 Command 键的多重选择

标签 cocoa nstableview

有没有办法在 NSTableView 中实现多重选择行为,而不需要用户在单击时按住命令按钮?在 Carbon 列表框中,通过在鼠标按下处理期间、调用 HandleControlClick() 函数时对 cmdKey 修饰符标志进行“或”操作,可以轻松完成此操作。我是 Cocoa 的新手,我不清楚如何以编程方式轻松修改事件,或者这是否是最佳解决方案。

最佳答案

子类 NSTableView 并使您的 TableView 成为该子类的实例。在子类中,通过根据您收到的鼠标事件创建一个新的鼠标事件来响应 mouseDown:mouseUp:,仅使用 NSCommandKeyMask flag 与修饰符标志进行“或”运算,并将新事件传递给 super

但是,我希望您的用户能够明显看出他们可以选择多个项目。另外,不要破坏 Shift 键 — 确保连续选择仍然有效。

关于cocoa - Cocoa 的 NSTableView 中没有 Command 键的多重选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1154835/

相关文章:

objective-c - 如何知道码头尺寸?

cocoa - 如何在 NSPathControl 中以 PopUp 样式设置所选项目?

objective-c - 我怎样才能告诉 NSTextField 自动调整它的字体大小以适应它的文本?

iPhone - 减少文件管理器访问

macos - KVO : not receiving notifications on NSTableView's -selectedRowIndexes?

objective-c - 神秘的第一响应者变化

objective-c - NSTableView 和退格事件(删除行)-fieldeditor/firsterresponder?

objective-c - 当用户在 NSAlert 后按 Enter 时未设置 NSIndexSet

swift - 当 dimsBackgroundDuringPresentation 为 true 时搜索后无法滚动

objective-c - 基于 View 的表格 View 中的进度指示器