我有一个IBAction连接到一个按钮,我想知道是否有任何方法可以运行该函数,即使按钮没有被按下。这是我尝试过的...注:我正在使用swift为这个项目。
//I get an error when I type this code? self.buttonPressed() @IBAction func buttonPressed(sender: AnyObject) { print("Called Action") }
oipij1gg1#
将sender参数设置为可选,并将nil传递给ButtonPressed。
self.ButtonPressed( nil ) @IBAction func ButtonPressed( sender: AnyObject? ) { println("Called Action") }
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)
kcwpcxri3#
你的ButtonPressed函数需要一个参数sender,但是当你调用它的时候,你没有传递任何参数。但是,如果你是通过编程来实现的,那么你显然没有sender。有两种方法可以解决这个问题:
ButtonPressed
sender
AnyObject?
AnyObject
self.ButtonPress(nil)
performButtonPress()
ar7v8xwq4#
使用以下格式调用按钮操作:雨燕3
@IBAction func buttonSelected(_ sender: UIButton) { print("Butten clicked") }
要调用按钮操作,请执行以下操作:
let button = UIButton() self.buttonSelected(button)
rwqw0loc5#
您需要使用“self”作为“sender”,例如:
self.buttonPressed (sender: self)
或更简单的版本
buttonPressed (sender: self)
均在Swift 3中进行了测试
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
6条答案
按热度按时间oipij1gg1#
将sender参数设置为可选,并将nil传递给ButtonPressed。
vcirk6k62#
一种方法是将按钮链接到其各自的接口构建器按钮,并在调用它时将其传递到函数中。
或者,像这样定义函数,这样就可以像以前一样调用方法:
kcwpcxri3#
你的
ButtonPressed
函数需要一个参数sender
,但是当你调用它的时候,你没有传递任何参数。但是,如果你是通过编程来实现的,那么你显然没有sender
。有两种方法可以解决这个问题:
AnyObject?
而不是AnyObject
),然后调用self.ButtonPress(nil)
。performButtonPress()
,从IBAction插座内部调用,如果要编程按键,直接调用performButtonPress()
即可。ar7v8xwq4#
使用以下格式调用按钮操作:雨燕3
要调用按钮操作,请执行以下操作:
rwqw0loc5#
您需要使用“self”作为“sender”,例如:
或更简单的版本
均在Swift 3中进行了测试
camsedfj6#