Swift OSX 动态添加项目到滚动列表
Swift OSX dynamically add items to a scroll list
在我创建的应用程序中,我将“Scroll View
”拖放到主故事板。这会自动创建一个 NSScrollView
,里面是一个 NSClipView
,里面是一个 NSView
。很好
我想要实现的是动态地将复选框添加到该滚动视图。提前不知道会有多少checkbox(这就是为什么我需要一个scroll)。
向 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 提供了更多详细信息以及您可能想要设置的更多选项。
希望对您有所帮助!
在我创建的应用程序中,我将“Scroll View
”拖放到主故事板。这会自动创建一个 NSScrollView
,里面是一个 NSClipView
,里面是一个 NSView
。很好
我想要实现的是动态地将复选框添加到该滚动视图。提前不知道会有多少checkbox(这就是为什么我需要一个scroll)。
向 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 提供了更多详细信息以及您可能想要设置的更多选项。
希望对您有所帮助!