首页 > 解决方案 > Xcode 11 Swift5 Macos 添加故事板 segue 会创建不需要的触发动作

问题描述

我已将我的 MacOS 应用程序迁移到 Xcode 11 和 Swift 5。一切都很好。但是,我正在尝试在情节提要中添加一个转场,当我这样做时,它会自动创建一个新的连接,它是一个动作。我来自一个 NSTableview,我想双击一行并以这种方式触发不同的视图控制器(预定义)打开,然后我从 tableview 传递 selectedrow 以查看或编辑详细记录。如果我删除 Triggered Segues 动作,它会物理删除 segue。一旦我单击 tableview 就具有单动作 segue 触发器不是我想要的。

在此处输入图像描述

但是,我可以在 Sent Actions 下添加一个 doubleAction,以便双击表格行。我可能有 6 个其他表,我双击行并在其中触发其他 segue。所有这些转场都没有触发转场单一动作,因为它们是在 Xcode 11 之前添加的。我有点担心,如果触摸情节提要中的这些转场,系统会强制对其进行触发动作。

上面显示的示例“连接”工作正常,只是每次单击 tableview 行时都会出错。这不会使应用程序崩溃,但它不会很好。

我不想单击 tableview 来执行任何功能。

如何在不删除 segue 本身的情况下删除 Triggered Seque 操作?

或者,如何添加一些代码来阻止此错误:

adeLog[33872:23184897] -[TradeLog.ViewController perform:]:无法识别的选择器发送到实例 0x102824600 2021-03-23 11:42:44.576862-0400 TradeLog[33872:23184897] [General] -[TradeLog.ViewController perform:] : unrecognized selector sent to instance 0x102824600 2021-03-23 11:42:44.577886-0400 TradeLog[33872:23184897] [General] ( 0 CoreFoundation 0x00007fff443319ad __exceptionPreprocess + 256 1 libobjc.A.dylib 0x00007fff6ea62a17 objc_exception_throw + 48 2 CoreFoundation 0x00007fff443ab7f4 -[ NSObject(NSObject) __retain_OA] + 0 3 CoreFoundation 0x00007fff442d381f转发] + 478 12 AppKit 0x00007fff4187ae4b -[NSApplication(NSEvent) sendEvent:] + 331 13 AppKit 0x00007fff418695c0 -[NSApplication run] + 755 14 AppKit 0x00007fff41858ac8 NSApplicationMain + 777 15 TradeLog 0x00000001001c0ead main + 13 16 libdyld.dylib 0x00007fff702313d5 start + 1 17 ?? ? 0x0000000000000003 0x0 + 3 所以 dylib 0x00007fff702313d5 开始 + 1 17 ??? 0x0000000000000003 0x0 + 3 所以 dylib 0x00007fff702313d5 开始 + 1 17 ??? 0x0000000000000003 0x0 + 3 所以

标签: macossegueswift5xcode11

解决方案


我找到了我将解释的问题的答案。在 Interface Builder 中创建 segue 时,我错误地在它所属的场景中连接了特定的 tabelview。我之前创建的所有在过去工作的转场都有与场景相关联的转场源。完成后,segue 被设置为“手动”segue。

场景显示手动segues....

在此处输入图像描述

并且 tableview Triggered Seque 动作现在消失了。

在此处输入图像描述

该应用程序现在正在为我工​​作而不会引发错误。


推荐阅读