gpt4 book ai didi

objective-c - NSCollectionView 不会滚动项目超过初始可见矩形

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

我在尝试修复一些 Unresolved macOS 10.13 错误时遇到了现有应用程序的问题。我有一个小的 NSCollectionView,它看起来类似于日历应用程序中的小月历。它显示日期并在单击时垂直滚动。但是,在 macOS 10.13 上, Collection View 仅显示几行并且不滚动。我已验证数据源被正确调用,它确实尝试加载其他项目 - 但不会滚动到它们。

我创建了一个小型示例应用程序,它也演示了这个问题。这是一个基本的 macOS 应用程序,它通过主 Storyboard添加一个 NSCollectionView,并具有从 nib 加载的通用 NSCollectionViewItem 类。主视图 Controller 中的全部代码是:

- (void)viewDidLoad {  
[super viewDidLoad];

NSNib *nib = [[NSNib alloc] initWithNibNamed:@"FooCollectionViewItem" bundle:nil];
[self.collectionView registerNib:nib forItemWithIdentifier:@"foo"];
}
- (void)viewDidAppear {
[super viewDidAppear];

[self.collectionView reloadData];
}
- (void)setRepresentedObject:(id)representedObject {
[super setRepresentedObject:representedObject];

}
- (NSInteger)numberOfSectionsInCollectionView:(NSCollectionView *)collectionView {
return 1;
}
- (NSInteger)collectionView:(NSCollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 2000;
}
- (NSCollectionViewItem *)collectionView:(NSCollectionView *)collectionView itemForRepresentedObjectAtIndexPath:(NSIndexPath *)indexPath {
FooCollectionViewItem *item = [collectionView makeItemWithIdentifier:@"foo" forIndexPath:indexPath];
item.fooField.stringValue = [NSString stringWithFormat:@"%ld", indexPath.item];

return item;
}

生成的应用程序如下所示:

enter image description here

不幸的是,这就是 Collection View 的全部内容。滚动不会滚动任何其他项目。我已将示例应用程序上传到 https://www.dropbox.com/sh/wp2y7g0suemzcs1/AABVKfTZq54J7riy6BR7Mhxha?dl=0以防万一。知道为什么这对我来说是 10.13 吗?

最佳答案

我在运行 High Sierra 的 NSCollectionView 滚动时遇到了类似的问题。这是我解决它的方法:

SWIFT

  if #available(OSX 10.13, *) {
if let contentSize = self.collectionView.collectionViewLayout?.collectionViewContentSize {
self.collectionView.setFrameSize(contentSize)
}
}

OBJ-C

  if (@available(macOS 10.13, *)) {
[self.collectionView setFrameSize: self.collectionView.collectionViewLayout.collectionViewContentSize];
}

关于objective-c - NSCollectionView 不会滚动项目超过初始可见矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46433652/

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