繁体   English   中英

Xcode中的Control-drag给出了出口,但是UIButton没有动作。 为什么?

[英]Control-drag in Xcode gives outlets, but no action for UIButton. Why?

在我正在构建的应用程序中,我有一个导航控制器,其中一个View Controller作为子视图连接(这是正确的词吗?)。 我添加了一个UIButton并尝试将其拖放到视图控制器类文件中,但它只是给我Outlet和Outlet集合作为选项,而不是Action。

我所看到的屏幕截图

这是一个非常简单的应用程序,我曾尝试删除Pods作为修复程序,但到目前为止还没有运气。

我也尝试过手动编写该函数,然后尝试将其连接回该按钮,但无济于事。 拖回工作区中的按钮不起作用,并且在测试应用程序时该功能未触发。 这是我尝试的代码:

@IBAction func tapSaveButton(_ sender: UIButton) {}

这可能很简单,所以我在这里想念什么?

编辑:另外,这是我的设置方法。 我有一个带有UINavigationItem的导航控制器,其中显示了一个子ViewController。 有问题的按钮在子ViewController中,我设置了一个新的swift文件来处理该ViewController的类。 我正在尝试将该按钮连接到该类文件中,这是它不起作用的地方。

我的故事板的屏幕截图

这是我的ViewController类的代码:

import Foundation
import UIKit
import KeychainSwift


class SettingsViewController : UIViewController {

    let keychain = KeychainSwift()

    @IBOutlet weak var APIKeyField: UITextField!
    @IBOutlet weak var WebSocketIPField: UITextField!
    @IBOutlet weak var SettingsSaveButton: UIButton!

    override func viewDidAppear(_ animated: Bool)  {
        super.viewDidAppear(animated)

        /* My other code, not related */
    }

    @IBAction func tapSaveButton(_ sender: UIButton) {

        // My button actions here.

    }

}

当然,这有点愚蠢。 我从按钮中删除了该类,然后中提琴,它使我可以在Swift文件中创建一个动作。

也许您尝试连接到其他ViewController,请再次检查它是否正确并正确连接到Storyboard上

右键单击情节提要中的uibutton,您应该在“已发送事件”下看到一系列操作选项,最常用的是“ Touch Up Inside”。

从所需的位置(圆形到侧面)拖到视图控制器上,一切都应该正常工作。

编辑:为清楚起见,您甚至可以将“ Touch Up Inside”拖到您已经创建的函子中,只要它被标记为

@IBAction ...

您的代码已经完成了。

这是我的意思的一个例子

控制拖动后,它看起来像这样

选择视图控制器,然后分配类

当我在项目中添加本地化时,也发生了这种情况。从那时开始,在本地化中添加了情节提要,情节提要按钮不显示任何操作选项,仅显示插座选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM