Почему бы это не сработало? если ([mybutton isSelected]) - PullRequest
0 голосов
/ 06 января 2012

В моем графическом интерфейсе 32 кнопки ... (не спрашивайте) ...

Во всяком случае, если только выбрать (нажав) четыре кнопки, то я бы хотел что-то для тех кнопок, которые выбраны.

Моя проблема в том, что когда я проверяю свойство "selected" каждой кнопки, они все возвращают true.

Я также использую конструктор интерфейса, и именно там я указал значок, который будет отображаться на кнопке, когда она находится в выбранном состоянии. Каждая кнопка также имеет значение тега в диапазоне от 100 до 132. Значок для выбранных кнопок работает отлично! Когда вы нажимаете 4 кнопки, эти 4 кнопки имеют значок, а другие нет ... Однако, когда я запускаю код, чтобы определить, какие из них выбраны, все они возвращают true.

Есть идеи, что я делаю не так?

for (int j = 1; j <= 32; j++) {
        but = (UIButton *)[self.view viewWithTag:(j + 100)];
        if(but.selected == YES) {
            // Note: I have also tried if ([but isSelected])
            //       I have also tried if ([but isSelected] == YES)
            //
            // every button is entering this section of code...
            //
        }
}

1 Ответ

0 голосов
/ 06 января 2012

Проверьте отправителя метода button_clicked вместо проверки "but.selected". Это должна быть только одна из 32 кнопок, когда вы нажимаете кнопку.

заменить

but.selected == YES

с

but == sender

Я думаю, это определенно решит твою проблему.

...