我有一个简单的例子。 我将左按钮1和label1与ctrl-draging连接到控制器类。
如何以编程方式对右侧button2 label2执行相同的操作(不使用ctrl-draging)
这是我的代码:
class ViewController: NSViewController {
@IBOutlet weak var label1: NSTextField! //connected with ctrl-drag
@IBOutlet weak var button1: NSButton! //connected with ctrl-drag
@IBOutlet weak var label2: NSTextField! //not yet connected
@IBOutlet weak var button2: NSButton! //not yet connected
@IBAction func button1Pressed(_ sender: Any) //connected with ctrl-drag
{ label1.stringValue = "button-I"
button1.title = "pressed"
}
@IBAction func button2Pressed(_ sender: Any) //not yet connected
{ label2.stringValue = "button-II"
button2.title = "pressed"
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
答案 0 :(得分:2)
如果您想使用故事板并在那里布置所有元素,则无法真正避免使用ctrl拖动(或者只是在右侧打开连接检查器时拖动)。
但是,您可以在代码中以编程方式创建第二个按钮,而不是完全使用故事板。然后以编程方式添加约束。
如果您愿意,您还可以通过编程方式添加按钮的操作(使用addTarget)但是至少需要设置IBOutlet才能获得对该按钮的引用。