【发布时间】:2015-11-11 02:28:16
【问题描述】:
我使用IKImageBrowserView 来显示图像网格。我没有任何以编程方式设置点或偏移或滚动任何内容的代码。我只是有代码列出了一个充满图像的目录的内容并将它们显示在图像浏览器中。
在启动应用程序时,滚动视图会无缘无故地滚动到图像网格的底部。在此之后的几秒钟内,如果您尝试使用鼠标向上滚动,则滚动条会出现故障,但仍会尝试滚动到底部。此后,问题停止,用户可以正常滚动。
在 El Capitan 之前,自动滚动没有发生。
同样,没有代码可以滚动NSSrcollView 或设置contentOffset,或scrollToRect,scrollToVisibleRect。
话虽如此,我已经尝试在图像加载失败后设置这些值。
问题 1:是否有人在 El Capitan(或任何 Mac OS 版本)上使用 NSScrollView 或 IKImageBrowserView 遇到过这种情况?
问题 2:有没有办法调试为什么会发生这种情况或如何让它自动停止滚动?
解决方案
这个解决方案最终对我有用。请务必正确连接插座。
.h
@interface WCSScrollView : NSScrollView
@end
.m
@class IKImageBrowserView;
@interface WCSScrollView ()
@property (strong) IBOutlet NSClipView * scrollerClipView;
@property (strong) IBOutlet IKImageBrowserView * imageBrowser;
@end
@implementation WCSScrollView
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
}
- (void)resizeSubviewsWithOldSize:(NSSize)oldSize {
NSClipView * clip = self.subviews[0];
self.imageBrowser = (IKImageBrowserView*)clip.subviews[0];
}
@end
【问题讨论】:
-
子类NSScrollView,覆盖所有偏移量改变方法并添加断点
-
您找到解决方案了吗?现在我的项目正在升级到 XCode 8...
-
我最终继承了
NSScrollView。我已经用我的解决方案更新了问题。 -
你的 IBOutlet 应该很弱
-
老实说我不明白你的解决方案
标签: macos cocoa osx-elcapitan nsscrollview ikimagebrowserview