Bool 使用 SPACE-6ren">
gpt4 book ai didi

macos - 启用 "Use keyboard navigation"会导致 NSTableView 困惑

转载 作者:行者123 更新时间:2023-12-03 18:07:17 25 4
gpt4 key购买 nike

我有一个 NSTableView,我在其中使用

tableView(tableView:shouldTypeSelectFor:withCurrentSearch:) -> Bool

使用 SPACE 键选择某些行的委托(delegate)方法如下

func tableView(_ tableView: NSTableView,
shouldTypeSelectFor event: NSEvent,
withCurrentSearch searchString: String?) -> Bool {
if event.charactersIgnoringModifiers == " " {
// Perform action on currently selected row(s)
}
return false
}

效果很好,但是当设置时

Preferences > Keyboard > Shortcuts > "Use keyboard navigation to move focus between controls"

打开后,按下SPACE键后表格 View 将完全失去焦点。如果我之后检查我的响应者链,我可以看到焦点移回到窗口。

打开此设置的另一个副作用是,如果我在选定的 TableView 单元格中有一个复选框 (NSButton),则在按 SPACE 时将自动调用其操作>.

该设置明确指出它仅将焦点移到 TABSHIFT+TAB 上,而不改变控件的工作方式。

为什么会发生这种情况?我可以为应用程序的表格 View 至少部分禁用此行为吗?

最佳答案

在我几乎失去最后一根头发之后,这就是解决它的方法

  • 确保所有单元格 subview 的 refusesFirstResponder 设置为 false

现在 TableView 第一响应者状态不会丢失。

关于macos - 启用 "Use keyboard navigation"会导致 NSTableView 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62047822/

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