在我创建的应用程序中,我将“滚动视图”拖放到主故事板.这会自动创建一个NSScrollView,其中包含一个NSClipView,其中包含一个NSView.精细. 我想要实现的是动态添加复选框到该滚动视图.我不
我想要实现的是动态添加复选框到该滚动视图.我不知道预先会有多少个复选框(这就是我需要滚动的原因).
将子视图添加到NSScrollView或NSClipView实际上会显示一些复选框,但滚动未启用.将子视图添加到NSView不会呈现任何内容.
编辑:我也尝试修改NSScrollView,NSClipView和NSView的高度,没有运气.
如果向视图添加了太多复选框,如何启用滚动?
所以诀窍就是创建一个容器视图(即NSView)来保存按钮.在故事板中创建NSScrollView时,它会为您创建NSClipView和NSView.向NSView添加或删除按钮后(可以创建自己的按钮,或使用提供的按钮),将滚动条的documentView设置为包含按钮的视图.这会在滚动条中正确重置所有内容,您应该滚动!如果更改表示滚动内容的视图的大小,则只需将该视图重新分配给scroller.documentView,它将相应地更新所有内容.这是一个向滚动条添加20个按钮的可怕示例:
let documentView = NSView(frame: CGRectMake(0,0,200,1200)) for index in 0..<20 { let offset = CGFloat(index * 50) let button = NSButton(frame: CGRectMake(0, offset, 150, 50 )) documentView.addSubview(button) } scrollView.documentView = documentView
Apple documentation上提供了您可能想要设置的更多细节和更多选项.
希望这可以帮助!