当前位置 : 主页 > 手机开发 > 其它 >

Swift OSX动态地将项添加到滚动列表

来源:互联网 收集:自由互联 发布时间:2021-06-11
在我创建的应用程序中,我将“滚动视图”拖放到主故事板.这会自动创建一个NSScrollView,其中包含一个NSClipView,其中包含一个NSView.精细. 我想要实现的是动态添加复选框到该滚动视图.我不
在我创建的应用程序中,我将“滚动视图”拖放到主故事板.这会自动创建一个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上提供了您可能想要设置的更多细节和更多选项.

希望这可以帮助!

网友评论