macos - NSCollectionView 滚动到底部

标签 macos cocoa appkit

我有一个 NSCollectionView,它由消息应用程序中的数十行单列项目(聊天消息)组成。

每个项目都包含一个高度不同的文本区域。因此,在创建 View 时 View 应默认位于底部,并在收到新消息时滚动到底部。

我正在努力要么默认滚动到底部,要么弄清楚如何让 CollectionView 内容的高度滚动到底部。

任何帮助将不胜感激,谢谢!

最佳答案

如果您仅支持 macOS 10.11 及更高版本,并且使用 NSCollectionViewLayout,您可以向布局器询问整个内容的大小。这也是滚动条大小的调整方式。

因此,在 ObjC 中,您只需向 collectionView 询问其布局器的内容大小并滚动到底部即可:

NSSize contentSize = theCollectionView.collectionViewLayout.collectionViewContentSize.height;

[theCollectionView.enclosingScrollView.contentView scrollPoint:NSMakePoint(0, contentSize.height)];

关于macos - NSCollectionView 滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51461277/

相关文章:

swiftui - 如何在 macOS 上使用 SwiftUI 显示 QLPreviewPanel?

macos - AppleScript 在 hdiutil 命令上抛出错误

swift - cocoa 自定义控件不可见

objective-c - 在沙箱中模拟按键

cocoa - 使用自动布局来定位自动调整大小的 View

cocoa - 简单问题: Cocoa Unit Tests and MVC

objective-c - 如何实现 NSDocument 方法 -canCloseDocumentWithDelegate :shouldCloseSelector:contextInfo: in Swift?

cocoa - 基于单元格的 NSTableView 上的黑色文本背景,具有源列表突出显示样式 (10.12)

objective-c - 为 Wine 和一些 .exe 文件创建包装器应用程序

macos - RabbitMQ 命令不存在?