2010-09-15 4 views
4

Я пытаюсь подключить UIButton к IBAction в конструкторе интерфейса, но IB не покажет метод, который я определил как возможность подключить его.Интерфейс Builder не увидит действия методы

- (IBAction)someAction:(id)sender; 

Это то, что я имею в час файл, а затем в файле M У меня есть

- (IBAction)someAction:(id)sender{ 
NSLog(@"Button Tapped."); } 

ИБ Документ подключен к этому классу я знаю, потому что класс также имеет UIPicker, и это прекрасно соединяется.

Любая помощь будет блестящим на этом,

Спасибо, Callaghan001.

+0

Вы сохранили файл заголовка? – Satyam

ответ

3

Убедитесь, что вы на самом деле подключаете проводник к событию кнопки (возможно, прикоснитесь внутрь), а не к самой кнопке. Поэтому вместо того, чтобы перетаскивать непосредственно с кнопки, либо нажмите Ctrl, чтобы увидеть его соединения, и перетащите его из касания внутрь события в цель, либо нажмите Ctrl-target, найдите действие и перетащите его с помощью кнопки. Если в этих случаях действие не отображается на целевом объекте, и вы уверены, что построитель интерфейсов знает, какой класс он есть, тогда я озадачен.

+0

Нет. Я использую опцию touch up внутри, и она все еще не отображается. Это действительно раздражает. Я видел это раньше, как только я обновил xcode в последний раз, и в итоге он просто начал работать снова без причины, но его просто разочаровывает. – Callaghan001

+0

, тогда я озадачен. помимо очевидных «решений», таких как перезапуск xcode/interface builder, который, как я полагаю, вы уже пробовали. – zem

+1

Просто попробовал перезапуск и очистил PRAM машины, и, наконец, он работает сейчас без изменений кода. Ум боится, почему он не работает в первую очередь. – Callaghan001

-2

Я думаю, ваша реализация должна быть

- (void)someAction:(id)sender 
{ 
    NSLog(@"Button Tapped."); 
} 
+0

Нет IBAction тоже будет работать, я исправил его сбросом настроек PRAM, будет следить за ним, надеюсь, это не будет продолжаться. – Callaghan001

4

Я установил эту проблему путем чтения файла класса вручную с Interface Builder. Просто сделайте File -> Read Class -> найдите файл .h, в котором вы определили IBAction. -> open! Тогда конструктор интерфейса скажет что-то вроде «один файл класса, обработанный»

+0

Это также может показывать сообщения об ошибках IB, которые могут быть полезны при отслеживании других случаев, когда IB запутывается. –

1

та же проблема, прочитав файл класса чтения, не исправил его, но изменил имя класса в инспекторе идентификации контроллера с UIViewController на правильное имя подкласса.

1

попробуйте добавить -(IBAction)testFunction:(id)sender; в .h файл.

Это сработало для меня.

1

У меня была эта проблема, и перезагрузка Xcode не решила ее.

Что решил это для меня было:

  1. Выберите File Owner
  2. Перейти к Identity Inspector (под Utilities, правая панель).
  3. Раздел Custom Class, просто выберите текстовое поле (где должно отображаться ваше имя подкласса UIViewController) и нажмите «Ввод».
Смежные вопросы