gpt4 book ai didi

objective-c - 我项目中的所有 NSTableView 都没有收到空格键键盘事件

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:51 24 4
gpt4 key购买 nike

NSTableView 不接收空格键键盘事件。

当我按下 keyUp 或 keyDown 时,选择会正确更改,但我无法通过按空格键选中/取消选中第一列中的复选框。

由于箭头键可以正常工作,我假设事件已被 NSTableView 正确接收。

此外,我刚刚检查了我的代码中是否存在任何可能干扰的委托(delegate)方法:

- (void)sendEvent:(NSEvent *)event;
- (BOOL)handleEvent:(NSEvent *)event;
- (void) keyDown:(NSEvent *)event;

并将它们注释掉,但空格键仍然不起作用。谢谢

最佳答案

要检查的一件事是类型选择功能没有占用您的空格键。我过去见过这个问题。您应该可以调用 [yourTableView setAllowsTypeSelect:NO] 将其关闭。但是,出于某种原因,在一种情况下,我能够成功解决此问题的唯一方法是实现 NSTableViewDelegate 方法 -tableView:typeSelectStringForTableColumn:row: 并返回 nil:

- (NSString *)tableView:(NSTableView *)tableView typeSelectStringForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
return nil;
}

这将一起禁用类型选择。就我而言,这很好。如文档中所述:

Return nil if the row or tableColumn should not be searched.

另一个选项可能是实现 -tableView:shouldTypeSelectForEvent:withCurrentSearchString: 并在事件的 keyCode 为 49(空格键)时返回 NO。这样,类型选择将保持启用状态,只有空格键会被忽略。

这只是一个想法。它实际上可能不是导致您的问题的原因,但我过去曾看到过相同的症状,而 type select 是原因。

关于objective-c - 我项目中的所有 NSTableView 都没有收到空格键键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698370/

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