ViewController扩展中的Swift @IBActions

问题描述 投票:1回答:1

我已经在Swift / Xcode 11中注意到,您无法将IB对象ctrl拖动到ViewController扩展中以创建IBAction,但可以将其剪切/粘贴到ext中。在ctrl拖动后在ViewController类中创建IBAction并可以正常工作。使用复制和粘贴将IBAction移至ViewController扩展时出现任何错误?为何Ctrl拖动不适用于VC扩展?我将UITextView动作放在带有其他TextView函数的扩展程序中‬当我注意到这一点,但不完全理解为什么ctrl拖动不起作用,但剪切/粘贴似乎没有问题的原因。考虑Q的Thx。

swift ibaction swift-extensions
1个回答
1
投票

除非有人为Apple工作,否则我不确定我们是否会在这里得到实际的答案。我可以猜测并给您一个对我有用的替代方法。

从Xcode功能实现的角度来看,支持这些操作的代码可能会有所不同。

根据我所见,当情节提要上的VC类与您要拖动到的对象的类直接匹配时,控制拖动将起作用。

我从未尝试将其拖入扩展名,但鉴于扩展名中不允许存储属性,因此也可以拖动出口,这会增加复杂性。

但是,我也已经在父类上完成了IBAction / IBOutlet,当我开始从现有的IBAction函数中拖动时(在它的左侧有一个圆圈,代码)到子类的情节提要。

简而言之,我假设要进行很多假设和代码编写,才能使您从情节提要拖放到代码上,而且我敢肯定,限制是由于处理极端情况而造成的。如果存在破损情况的可能性,苹果通常会选择完全禁止行为。创建这些连接的其他一些方式(例如复制和粘贴)可能更简单。

© www.soinside.com 2019 - 2024. All rights reserved.