gpt4 book ai didi

objective-c - 如何确定用户是否已滚动到 NSTableView 的末尾

转载 作者:太空狗 更新时间:2023-10-30 03:40:09 26 4
gpt4 key购买 nike

我有一个 NSTableView,我想知道用户何时滚动到底部,以便我可以执行操作。不太确定该怎么做?

更新:这是我计算表格底部的方法:

-(void)tableViewDidScroll:(CPNotification) notification
{
var scrollView = [notification object];
var currentPosition = CGRectGetMaxY([scrollView visibleRect]);
var tableViewHeight = [messagesTableView bounds].size.height - 100;

//console.log("TableView Height: " + tableViewHeight);
//console.log("Current Position: " + currentPosition);

if (currentPosition > tableViewHeight - 100)
{
console.log("we're at the bottom!");
}
}

最佳答案

您可以将自己添加为来自表的 -enclosingScrollView 的 -contentView 的 NSViewBoundsDidChangeNotification 的观察者(在 NSNotificationCenter 意义上,而不是 KVO/Bindings 意义上),并根据可见矩形做出必要的 react 。

更新

在某处执行此操作(可能是 -awakeFromNib):

// Configure the scroll view to send frame change notifications
id clipView = [[tableView enclosingScrollView] contentView];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myBoundsChangeNotificationHandler:)
name:NSViewBoundsDidChangeNotification
object:clipView];

把它放在有用的地方:

- (void)myBoundsChangeNotificationHandler:(NSNotification *)aNotification
{

if ([aNotification object] == [[tableView enclosingScrollView] contentView])
[self doSomethingInterestingIfDocumentVisibleRectSatisfiesMe];

}

本质上,您想要检查 ScrollView 的 -documentVisibleRect 以查看底部的几个像素是否可见。请记住考虑具有翻转坐标系的 View 的可能性 - “翻转 View ” - 涵盖在 Views Programming Guide 中。 .

关于objective-c - 如何确定用户是否已滚动到 NSTableView 的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4959544/

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