gpt4 book ai didi

macos - 动画完成后如何滚动到添加到 NSTableView 的行

转载 作者:行者123 更新时间:2023-12-03 16:14:29 26 4
gpt4 key购买 nike

向 NSTableView 添加新行后,我想滚动到它。

当该行被添加到表的末尾时,滚动仅滚动到之前是最后一行的行。我最初以为我必须等待动画完成,但这并没有解决我的问题。这是我的代码:

        [NSAnimationContext beginGrouping];
[_tableView insertRowsAtIndexes:indexSet withAnimation:NSTableViewAnimationEffectGap];
[[NSAnimationContext currentContext] setCompletionHandler:^{

// Scroll to the first inserted row

NSUInteger firstIndex = [indexSet firstIndex];
[_tableView scrollRowToVisible:firstIndex];

}];
[NSAnimationContext endGrouping];

我该怎么做?

最佳答案

我找到了一个令我满意的解决方案:

[_tableView insertRowsAtIndexes:indexSet withAnimation:NSTableViewAnimationEffectGap];

[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSUInteger firstIndex = [indexSet firstIndex];
[_tableView scrollRowToVisible:firstIndex];
}];

我只是将滚动请求延迟到下一个运行循环。

关于macos - 动画完成后如何滚动到添加到 NSTableView 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21023999/

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