У меня есть игровое поле для настольной игры, похожее на шахматы с 60 полями. Вместо того, чтобы соединять их вручную в раскадровке, я хочу сделать это с помощью for...in. Мой код такой:
let feld = NSButton()
feld.frame = CGRect(x: 1300+30*h, y: 20, width: 22, height: 22)
feld.target = self
feld.action = #selector(ButtonTest)
self.view.addSubview(feld)
ButtonArray.append(feld)
И вот такая функция (не понимаю, зачем мне @objc перед функцией, но только так она работает.
@objc func ButtonTest() {
ButtonArray[2].isEnabled=false
}
Код работает нормально. Но я хочу передать аргумент функции, чтобы я мог деактивировать только что нажатую кнопку, а не только [2], как в этом примере. (и я хочу добавить к этой функции другие вычисления).
Я искал вокруг, и кажется, что нельзя передавать аргументы. Если это правда, как еще я могу решить свою проблему?
РЕДАКТИРОВАТЬ: Отличный ответ и объяснение, спасибо. К сожалению, я задал вопрос неточно: я хочу не только деактивировать нажатую кнопку, но и выполнять такие вычисления:
var score = 5+/NumberOfButtonPressed/
Таким образом, если нажата первая кнопка, счет = 6, если нажата 10-я кнопка, счет = 15.