首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift将多个IBOutlets放入一个数组

Swift将多个IBOutlets放入一个数组
EN

Stack Overflow用户
提问于 2014-07-17 21:38:31
回答 3查看 31.4K关注 0票数 36

我用ctrl + drag做了这些(用红色边框标记的) IBOutlets

但我不喜欢完全相同的行9次(干)

如何将这些IBOutlets放入数组中?

EN

回答 3

Stack Overflow用户

发布于 2014-07-17 21:44:14

解决方案在这里Swift - IBOutletCollection equivalent

@IBOutlet var objectCollection: Object

票数 2
EN

Stack Overflow用户

发布于 2021-08-05 17:12:55

这是针对macOS的(应该与iOS类似),并且我在我的故事板中没有找到"Outlet Collections“(看起来他们去掉了那个选项)。所以我把我所有的按钮都放在一个NSStackView中,并从故事板链接起来

代码语言:javascript
复制
@IBOutlet weak var buttons: NSStackView!

然后,我遍历它们以进行相应的更改

代码语言:javascript
复制
for case let (index, button as NSButton) in buttons.arrangedSubviews.enumerated() {
            if(index + 1 != someButtonIndex) {button.state = .off}
            else {button.state = .on}
        }

您也可以使用tag而不是index

票数 1
EN

Stack Overflow用户

发布于 2015-12-28 01:50:53

从两个视图窗格开始,您可以在其中看到代码和故事板。当您建立从UI到代码的第一个IBOutlet连接时,只需仔细查看connection下拉字段并选择名为"Outlet Collection“的选项即可。这将自动创建一个IBOutlets数组。接下来,只需在创建数组的代码中查找圆内的小黑圈即可。只需从这个圆圈拖动到您想要连接到同一集合的所有其他UI对象(不确定您是否可以混合类型)。同样,您可以将所有对象连接到一个action,方法是从创建的第一个黑点拖动到要连接到该Action的所有其他对象。还可以考虑使用EnumerateSequence()来帮助处理此集合。很甜蜜,对吧?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24805180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档