我想有类似于Dock中堆栈的“列表模式”。 但是,当“抽屉”折叠时,它应该具有NSPopUpButton的行为,就显示所选对象而言。 每行应包含图像和文本列。
你怎么会意识到这一点? 也许子类化NSPopUpButton,以显示CollectionView? 或者有一个ordanary按钮并在点击时附加一个包含CollectionView的窗口?
哦,这个上下吧,而不是侧面的滚动条 - 怎么做的?
答案 0 :(得分:0)
为什么不使用常规NSPopUpButton,其菜单程序集被子类化的NSMenu / NSMenuItem替换,它以您想要的方式绘制内容?您可以免费获得所有滚动行为。
但是,如果您坚持使用NSCollectionView:
1 - 如果您计划弹出菜单以外的任何内容,请不要继承NSPopUpButton。它是为了显示菜单而构建的。只需使用常规NSButton并手动管理其-state(显示集合视图时为NSOnState;否则为NSOffState)。
2 - 您可以使用标准集合视图/滚动视图组件减去滚动条来显示无边框透明窗口(许多在线示例)。无边框窗口可以承载上/下区域(可以是使用NSTrackingAreas检测鼠标悬停的简单视图)。这些区域可以在徘徊时使用NSTimer每隔n毫秒手动滚动一次NSScrollView。