gpt4 book ai didi

macos - (Cocoa) NSScrollView 与 IKImageBrowserView 滚动到底部

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

我正在使用 IKImageBrowserView 来显示图像网格。我没有任何以编程方式设置点或偏移或滚动任何内容的代码。我只是用代码列出了充满图像的目录的内容并将它们显示在图像浏览器中。

启动应用程序后, ScrollView 会无缘无故地滚动到图像网格的底部。此后几秒钟,如果您尝试用鼠标向上滚动,滚动条会出现故障,但仍会尝试滚动到底部。此后,问题停止,用户可以正常滚动。

在 El Capitan 之前,自动滚动不会发生。

同样,没有代码可以滚动 NSSrcollView 或设置 contentOffsetscrollToRectscrollToVisibleRect .

话虽如此,我尝试在图像加载后设置这些值,但没有成功。

问题 1:有人在 El Capitan(或任何 Mac OS 版本)上使用 NSScrollViewIKImageBrowserView 遇到过这种情况吗?

问题 2:有什么方法可以调试为什么会发生这种情况,或者如何让它自动停止滚动?

<小时/>

解决方案

这个解决方案最终对我有用。确保正确连接 socket 。

.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

View hierarchy

最佳答案

您需要子类化 NSScrollView

.h

#import <Cocoa/Cocoa.h>
#import <Quartz/Quartz.h>

// This class fixes a glitch with the
// ikimagebrowserview
// http://stackoverflow.com/questions/33643289/cocoa-nsscrollview-with-ikimagebrowserview-scrolls-to-bottom

@interface IKImageBrowserScrollFixScrollView : NSScrollView

@end

.m

#import "IKImageBrowserScrollFixScrollView.h"

@implementation IKImageBrowserScrollFixScrollView

- (void)resizeSubviewsWithOldSize:(NSSize)oldSize {

NSClipView * clipView;
for (NSView * v in self.subviews) {
if ([v isKindOfClass:[NSClipView class]]) {
clipView = (NSClipView *)v;
break;
}
}

IKImageBrowserView * imageBrowser;
for (NSView * v in clipView.subviews) {
if ([v isKindOfClass:[IKImageBrowserView class]]) {
imageBrowser = (IKImageBrowserView *)v;
break;
}
}

NSRect r = imageBrowser.frame;
[super resizeSubviewsWithOldSize:oldSize];
imageBrowser.frame = r;

}

@end

关于macos - (Cocoa) NSScrollView 与 IKImageBrowserView 滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33643289/

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