2011-03-02 78 views
32

我正在做的Mac应用程序,它需要知道当用户滚动NSScrollView,但是,我无法找到像UIScrollView,它具有以下的委托方法的任何方法:NSScrollView滚动时的回调?

– scrollViewDidScroll: 
– scrollViewWillBeginDragging: 
– scrollViewDidEndDragging:willDecelerate: 
– scrollViewShouldScrollToTop: 
– scrollViewDidScrollToTop: 
– scrollViewWillBeginDecelerating: 
– scrollViewDidEndDecelerating: 

我能有App Kit的类似委托方法?提前致谢。

启。

回答

60

您可以通过监视其内容视图的界限来监视滚动视图的更改。首先设置内容视图与

[contentView setPostsBoundsChangedNotifications:YES]; 

发布其变化那么作为这些通知的观察者与

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(boundsDidChange:) name:NSViewBoundsDidChangeNotification object:contentView]; 
3

注册有同样的问题最近...要有点模仿减速回调有可能覆盖

-(void) scrollWheel:(NSEvent *)theEvent 
NSScrollView类

,但随后检查theEvent.momentumPhase,而不是theEv事件阶段的ent.phase。