【发布时间】:2019-02-25 15:25:16
【问题描述】:
我有一个 NSCollectionView 并且必须禁用它的 scrollview 滚动属性,这样它就不会在某些特定条件下重新加载,并在用户尝试滚动时向用户显示警报。
在视图滚动时调用的任何可以限制集合视图数据的滚动和重新加载的委托方法都会有所帮助。
提前致谢。
【问题讨论】:
标签: swift macos cocoa nsscrollview nscollectionview
我有一个 NSCollectionView 并且必须禁用它的 scrollview 滚动属性,这样它就不会在某些特定条件下重新加载,并在用户尝试滚动时向用户显示警报。
在视图滚动时调用的任何可以限制集合视图数据的滚动和重新加载的委托方法都会有所帮助。
提前致谢。
【问题讨论】:
标签: swift macos cocoa nsscrollview nscollectionview
继承 NSCollectionView 并覆盖 scrollWheel
import Cocoa
class YourCollectionView: NSCollectionView {
var disableScroll = true
override func scrollWheel(with event: NSEvent) {
if disableScroll {
return
} else {
super.scrollWheel(with: event)
}
}
}
【讨论】:
你可以借助ScrollViewDelegate的scrollViewDidScroll方法来做。你可以使用这个方法,因为collectionview是scrollview的子类。
例如:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("collectionView Content : \(collectionView.contentOffset.y)")
if collectionView.contentOffset.y >= 100
{
collectionView.isScrollEnabled = false
}
else
{
collectionView.isScrollEnabled = true
}
}
我希望它对你有用。
【讨论】:
NSCollectionView 是NSView 的子类。