2011-07-04 2 views
2

Хорошо, поэтому я пишу приложение в Xcode (версия 3) для Mac OS X, и у меня возникают проблемы с моими IBactions. Я пишу их и подключаю их к своим кнопкам, но по какой-то причине они никогда не вызываются, когда я нажимаю кнопку. Я дважды проверил и triple проверил соединения в построителе интерфейса, но не повезло. Если вы не можете с этим справиться, может быть, кто-нибудь знает, как вручную подключать действия к кнопкам в коде? Я нашел Can you hard code IBActions and IBOutlets, rather than drag them manually in Interface Builder?, но это для iphone, и то, что он предлагает, похоже, не было в Mac OS X какао, только касание какао (не уверен, хотя). Если бы кто-нибудь мог помочь, я был бы очень признателен.IBAction не вызывается при нажатии кнопки

UPDATE: Я могу подтвердить, что эта проблема существует только в одном проекте. Новые проекты работают нормально.

+1

Как вы проверяете, что они не называются? Можете ли вы создать минимальный случай, который показывает проблему, или это всего лишь три случайных кнопки? – Chuck

+0

Они не вызываются, потому что я помещаю NSLog в метод, и нет сообщения журнала. Я думаю, что если бы я сделал новый проект, проблема исчезла бы, но мне хотелось бы, чтобы мне не пришлось беспокоиться. Так, другими словами, я думаю, что это только этот проект. – thekmc

+0

Возможно, файл XIB, который вы редактируете, не тот, который работает. Попробуйте сделать что-то вроде добавления дополнительной кнопки, а затем построения и запуска и посмотрите, есть ли кнопка. Если нет, проверьте, что ваш XIB-файл является членом вашей целевой задачи. –

ответ

1

Вы пытались удалить приложение из симулятора/устройства и выполнить новую сборку и запустить? У меня была такая же проблема, и это помогло мне.

+0

Кроме того, это приложение для Mac, поэтому нет симулятора. Все в порядке, я все равно начал весь проект. Он нуждался в серьезном переписывании. – thekmc

1

Я столкнулся с этой проблемой и надеялся, что у этого сообщения был ответ. После еще нескольких тестов, похоже, с подписью IBAction.

Эта подпись не работает:

-(IBAction)myAction;

Эта подпись сделал работы:

-(IBAction)myAction:(id)sender;

Добавление в параметре sender, кажется, сделать трюк.

Смежные вопросы