swift2 如何在按钮未被按下时调用按钮函数

r7knjye2  于 2022-11-06  发布在  Swift
关注(0)|答案(6)|浏览(169)

我有一个IBAction连接到一个按钮,我想知道是否有任何方法可以运行该函数,即使按钮没有被按下。这是我尝试过的...
注:我正在使用swift为这个项目。

//I get an error when I type this code?
self.buttonPressed()

@IBAction func buttonPressed(sender: AnyObject) {

    print("Called Action")

}
oipij1gg

oipij1gg1#

将sender参数设置为可选,并将nil传递给ButtonPressed。

self.ButtonPressed( nil )

@IBAction func ButtonPressed( sender: AnyObject? ) {
    println("Called Action")
}
vcirk6k6

vcirk6k62#

一种方法是将按钮链接到其各自的接口构建器按钮,并在调用它时将其传递到函数中。

@IBOutlet weak var yourButton: UIButton!

self.buttonPressed(yourButton)

@IBAction func buttonPressed(sender: AnyObject) {
    print("Called Action")
}

或者,像这样定义函数,这样就可以像以前一样调用方法:

@IBAction func buttonPressed(sender: AnyObject? = nil) {
    print("Called Action")
}

// Call your method like this
self.buttonPressed()

// or this
self.buttonPressed(sender: nil)
kcwpcxri

kcwpcxri3#

你的ButtonPressed函数需要一个参数sender,但是当你调用它的时候,你没有传递任何参数。但是,如果你是通过编程来实现的,那么你显然没有sender
有两种方法可以解决这个问题:

  • 将sender参数设置为可选参数(AnyObject?而不是AnyObject),然后调用self.ButtonPress(nil)
  • 将所有的按键函数放在一个单独的函数中,比如performButtonPress(),从IBAction插座内部调用,如果要编程按键,直接调用performButtonPress()即可。
ar7v8xwq

ar7v8xwq4#

使用以下格式调用按钮操作:雨燕3

@IBAction func buttonSelected(_ sender: UIButton) {
        print("Butten clicked")
}

要调用按钮操作,请执行以下操作:

let button = UIButton()
self.buttonSelected(button)
rwqw0loc

rwqw0loc5#

您需要使用“self”作为“sender”,例如:

self.buttonPressed (sender: self)

或更简单的版本

buttonPressed (sender: self)

均在Swift 3中进行了测试

camsedfj

camsedfj6#

lazy var Button : UIBarButtonItem = {
      let barButtonItem = UIBarButtonItem(title: "Button", style: .done, target: self, action: #selector(btnSelection))
      return barButtonItem
    }()

    func btnSelection(){
     // Code
    }

    // Now you can call self.btnSelection() whenever you want

相关问题