如何在未按下按钮时调用按钮功能
How do I call a button function when the button is not being pressed
我有一个 IBAction 连接到一个按钮,我想知道是否有任何方法 运行 即使按钮没有被按下也能发挥作用。这是我试过的...
注意:我正在为这个项目使用 swift。
//I get an error when I type this code?
self.buttonPressed()
@IBAction func buttonPressed(sender: AnyObject) {
print("Called Action")
}
你的 ButtonPressed
函数需要一个参数 sender
但你在调用它时没有传递任何参数。但是,如果您以编程方式执行此操作,那么您显然没有 sender
.
解决此问题的两种方法:
- 使 sender 参数成为可选参数(
AnyObject?
而不是 AnyObject
)并调用 self.ButtonPress(nil)
。我刚试过这个并且有效。
- 将所有按钮按下函数放在一个单独的函数中,例如
performButtonPress()
。从 IBAction 插座内部调用它,如果你想以编程方式按下按钮,直接调用 performButtonPress()
.
使您的发送者参数可选并将 nil 传递给 ButtonPressed。
self.ButtonPressed( nil )
@IBAction func ButtonPressed( sender: AnyObject? ) {
println("Called Action")
}
一种方法是 link 您的按钮到其各自的界面构建器按钮,并在您调用它时将其传递到您的函数中。
@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)
您需要将"self"用作"sender",示例:
self.buttonPressed (sender: self)
或更简单的版本
buttonPressed (sender: self)
均在 Swift 3
中测试
使用以下格式调用按钮操作:Swift 3
@IBAction func buttonSelected(_ sender: UIButton) {
print("Butten clicked")
}
要调用按钮操作:
let button = UIButton()
self.buttonSelected(button)
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
我有一个 IBAction 连接到一个按钮,我想知道是否有任何方法 运行 即使按钮没有被按下也能发挥作用。这是我试过的...
注意:我正在为这个项目使用 swift。
//I get an error when I type this code?
self.buttonPressed()
@IBAction func buttonPressed(sender: AnyObject) {
print("Called Action")
}
你的 ButtonPressed
函数需要一个参数 sender
但你在调用它时没有传递任何参数。但是,如果您以编程方式执行此操作,那么您显然没有 sender
.
解决此问题的两种方法:
- 使 sender 参数成为可选参数(
AnyObject?
而不是AnyObject
)并调用self.ButtonPress(nil)
。我刚试过这个并且有效。 - 将所有按钮按下函数放在一个单独的函数中,例如
performButtonPress()
。从 IBAction 插座内部调用它,如果你想以编程方式按下按钮,直接调用performButtonPress()
.
使您的发送者参数可选并将 nil 传递给 ButtonPressed。
self.ButtonPressed( nil )
@IBAction func ButtonPressed( sender: AnyObject? ) {
println("Called Action")
}
一种方法是 link 您的按钮到其各自的界面构建器按钮,并在您调用它时将其传递到您的函数中。
@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)
您需要将"self"用作"sender",示例:
self.buttonPressed (sender: self)
或更简单的版本
buttonPressed (sender: self)
均在 Swift 3
中测试使用以下格式调用按钮操作:Swift 3
@IBAction func buttonSelected(_ sender: UIButton) {
print("Butten clicked")
}
要调用按钮操作:
let button = UIButton()
self.buttonSelected(button)
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