gpt4 book ai didi

cocoa - NSTableView 在选择时跳转...为什么?

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

我有一个带有单列的 NSTableView,填充有 NSTableViewDataSource 方法(不涉及绑定(bind))。NSTableView 位于 NSScrollView 内部,这是从 Interface Builder 中的库中拖入 NSTableView 时的默认行为。表格 View 的内容是根据用户键入的搜索字符串填充的,并且在此之后不会更改。

我只实现 DataSource 协议(protocol)的这两个方法:

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView;
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row;

输入搜索字符串后,焦点仍在 NSTextField 中,但我可以自然地使用鼠标滚轮或滚动条上的箭头滚动表格 View 。两者都不会导致桌面 View 接收聚焦环。但是,如果我向下滚动以使我不在表格 View 的顶部,然后单击以突出显示表格 View 中的单个行,则表格 View 会跳回顶部,然后选择此时鼠标下方的任何行。如果我单击该点之后的行,它将按预期工作。

换句话说,如果 NSTableView 周围有焦点环,则单击一行会突出显示预期的行。如果周围没有聚焦环,则单击一行会在滚动到顶部后选择该位置的任何行。

有什么见解吗?我正在运行 Snow Leopard,但我相信在我运行 Leopard 时也发生过这种情况。

最佳答案

是否当搜索 NSTextField 失去焦点时,它会以某种方式在表格 View 上触发 reloadData (或类似的方法),这会清空 View (将其滚动位置重置到顶部)然后立即重新填充它?

关于cocoa - NSTableView 在选择时跳转...为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3512617/

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