Интерфейсный Разработчик не увидит методы действия - PullRequest
4 голосов
/ 15 сентября 2010

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

- (IBAction)someAction:(id)sender;

Этоэто то, что у меня в файле h, а затем в файле M у меня есть

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

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

Любая помощь была бы блестящей в этом,

Спасибо, Callaghan001.

Ответы [ 6 ]

4 голосов
/ 10 января 2011

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

3 голосов
/ 15 сентября 2010

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

1 голос
/ 09 июля 2013

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

Для меня это решило:

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

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

У меня это сработало.

1 голос
/ 20 июля 2011

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

0 голосов
/ 16 сентября 2010

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

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