Ответ 1
Проблема заключается в том, как вы добавляете свой selector
myButton.action = Selector(printSomething())
Синтаксис для добавления селекторов немного странный, вы даете ему строку с именем функции, поэтому в вашем случае вы должны написать:
myButton.action = Selector("printSomething")
Что должно наградить вас Hello
в вашей консоли.
И, вероятно, из-за того, что синтаксис вызывает у людей проблемы, он был изменен в Swift 2.2, поэтому теперь вы пишете:
myButton.action = #selector(ViewController.printSomething)
вместо этого. Это означает, что компилятор может помочь вам обнаружить эти ошибки на раннем этапе, что, я думаю, является большим шагом вперед. Подробнее об этом вы можете прочитать в заметках о выпуске Swift 2.2 здесь
Итак... вот весь ваш пример:
import Cocoa
class ViewController: NSViewController {
@objc
func printSomething() {
print("Hello")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let myButtonRect = CGRect(x: 10, y: 10, width: 100, height: 10)
let myButton = NSButton(frame: myButtonRect)
view.addSubview(myButton)
myButton.target = self
myButton.action = #selector(ViewController.printSomething)
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
Надеюсь, это поможет вам.