我用ctrl + drag
做了这些(用红色边框标记的) IBOutlets
但我不喜欢完全相同的行9次(干)
如何将这些IBOutlets放入数组中?
发布于 2014-07-17 21:44:14
解决方案在这里Swift - IBOutletCollection equivalent
@IBOutlet var objectCollection: Object
发布于 2021-08-05 17:12:55
这是针对macOS的(应该与iOS类似),并且我在我的故事板中没有找到"Outlet Collections“(看起来他们去掉了那个选项)。所以我把我所有的按钮都放在一个NSStackView
中,并从故事板链接起来
@IBOutlet weak var buttons: NSStackView!
然后,我遍历它们以进行相应的更改
for case let (index, button as NSButton) in buttons.arrangedSubviews.enumerated() {
if(index + 1 != someButtonIndex) {button.state = .off}
else {button.state = .on}
}
您也可以使用tag
而不是index
发布于 2015-12-28 01:50:53
从两个视图窗格开始,您可以在其中看到代码和故事板。当您建立从UI到代码的第一个IBOutlet连接时,只需仔细查看connection下拉字段并选择名为"Outlet Collection“的选项即可。这将自动创建一个IBOutlets数组。接下来,只需在创建数组的代码中查找圆内的小黑圈即可。只需从这个圆圈拖动到您想要连接到同一集合的所有其他UI对象(不确定您是否可以混合类型)。同样,您可以将所有对象连接到一个action,方法是从创建的第一个黑点拖动到要连接到该Action的所有其他对象。还可以考虑使用EnumerateSequence()来帮助处理此集合。很甜蜜,对吧?
https://stackoverflow.com/questions/24805180
复制相似问题