gpt4 book ai didi

cocoa - 如何观察NSScroller的变化?

转载 作者:行者123 更新时间:2023-12-03 16:13:21 24 4
gpt4 key购买 nike

我有一个 NSScrollView 子类,我想根据当前滚动位置更新另一个 NSView 。我尝试 KVC 观察 [self Horizo​​ntalScroller]value 但从未被调用。

// In awakeFromNib
[[self horizontalScroller] addObserver:self
forKeyPath:@"value"
options:NSKeyValueObservingOptionNew
context:NULL];

// Later in the file
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if (object == [self horizontalScroller] && [keyPath isEqualToString:@"value"]) {
// This never gets called
}
}

您是否发现我的推理有错误,或者知道如何观察 NSScrollview 滚动的更好方法?

最佳答案

告诉 ScrollView 的内容 View 发布边界更改通知,然后监听 NSViewBoundsDidChangeNotification。

[[aScrollView contentView] setPostsBoundsChangedNotifications:YES];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(boundsDidChangeNotification:)
name:NSViewBoundsDidChangeNotification
object:[scrollView contentView]];

Scroll View Programming Guide 中所述,您可以通过以下方式获取当前滚动位置:

NSPoint currentScrollPosition = [[theScrollView contentView] bounds].origin;

关于cocoa - 如何观察NSScroller的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693717/

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