gpt4 book ai didi

objective-c - 使 NSTableView 处于事件状态

转载 作者:行者123 更新时间:2023-12-03 16:23:33 25 4
gpt4 key购买 nike

这里是 cocoa 菜鸟。

我有一个简单的 Mac 应用程序,其中包含一个 NSTextField,它可以获取一些结果并将它们放入 NSTableView 中。我希望能够在文本字段中按向上/向下键来激活表格 View 中的第一个/最后一个项目。

我已完成以下操作:

- (void)keyUp:(NSEvent *)theEvent {
switch([theEvent keyCode]) {
case 125: {
NSLog(@"I need to move down");
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:0];
[resultsTableView selectRowIndexes:indexSet byExtendingSelection:NO];
[resultsTableView becomeFirstResponder];
break;
}
case 126: {
NSLog(@"I need to move up");
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:[results count]-1];
[resultsTableView selectRowIndexes:indexSet byExtendingSelection:NO];
[resultsTableView becomeFirstResponder];
break;
}
}
}

这部分是我想要的。它确实选择了 resultsTableView 中的第一个或最后一个项目,但所选项目保持灰色,并且 TextView 保持事件状态。

我以为在 resultsTableView 上调用 becomeFirstResponder 就可以解决问题,但事实并非如此。

任何帮助将不胜感激!

最佳答案

切勿直接调用becomeFirstResponder。使用 NSWindow 的 makeFirstResponder:

[[resultsTableView window] makeFirstResponder:resultsTableView];

关于objective-c - 使 NSTableView 处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790718/

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