【问题标题】:Control-drag in Xcode gives outlets, but no action for UIButton. Why?Xcode 中的 Control-drag 提供了出口,但 UIButton 没有任何操作。为什么?
【发布时间】:2017-09-14 18:41:34
【问题描述】:

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

Screenshot of what I'm seeing

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

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

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

这可能很简单,所以我在这里缺少什么?

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

Screenshot of my storyboard

这是我的 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.

    }

}

【问题讨论】:

  • 为什么你的按钮的“类型”是SaveButton?这是自定义类还是错误?
  • 你能展示一下那里有什么“对象”吗?并粘贴您的 SaveButton 类代码
  • @MatthewSeaman 这是一个自定义类。我将按钮命名为 SaveButton,所以当我拖过去时它会自动选择它。不幸的是,将其更改为 UIButton 不会影响任何事情。
  • @AhmadF 不幸的是没有运气。
  • @GrzegorzKrukowski 我在描述中添加了更多信息。希望这会有所帮助

标签: ios swift xcode uibutton interface-builder


【解决方案1】:

当然这是愚蠢的。我从按钮中删除了类,中提琴,它让我可以在我的 Swift 文件中创建一个动作。

【讨论】:

    【解决方案2】:

    也许您尝试连接到其他视图控制器 请再次检查它是正确的视图控制器并准确连接到情节提要

    【讨论】:

      【解决方案3】:

      右键单击故事板中的 uibutton,您应该会在“Sent Events”下看到一系列操作选项,最常用的是“Touch Up Inside”。

      从你想要的(圈到一边)拖到你的视图控制器上,一切都应该正常工作。

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

      @IBAction ...
      

      您的代码已经完成了。

      【讨论】:

      • 有趣的是,我在此按钮上没有任何可用的事件。我的 ViewController 中是否缺少某些内容?我所拥有的只是触发的 Segue、引用 Outlets 和引用 Outlet 集合。我的 UINavigationController 中的初始 ViewController 中的按钮具有所有可用的操作,但是
      • @CharlesForster 我刚刚为你的程序做了一个模型。它运行良好。您确定您的视图控制器的“类”与您的 swift 文件相关联吗?请看我现在上传的第三张图片。
      • 我还会检查按钮的类,使用与视图控制器相同的逻辑,以确保它正确地继承 UIButton 并且正确选择了它。
      • 是的,这帮助了我。基本上,如果您的按钮上有一个特定的类,它不会为您提供“操作”选项。一旦我清除了选项中的那个字段,瞧,我又有可用的操作了。
      【解决方案4】:

      这也发生在我身上,当我在我的项目中添加本地化时,从在本地化中添加故事板的那一刻起,故事板按钮没有显示任何操作选项,只显示出口选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-09
        • 2020-10-16
        • 2019-12-23
        • 1970-01-01
        • 2019-04-08
        • 2012-08-04
        • 1970-01-01
        相关资源
        最近更新 更多