Ctrl-Drag от кнопки к методу не работает. Xcode/Interface Builder

Я создаю приложение для iOS, и у меня есть большая часть кода /GUI (это приложение с одним представлением). Теперь у меня есть файлы.xib и controller.h рядом друг с другом, и я хочу связать нажатие кнопки с определенным действием. Каждый раз, когда я пытаюсь ничего не происходит. Индикатор пользовательского интерфейса, который я перетаскиваю, отображается, но он не позволяет мне подключиться к методу. Это происходит для всех объектов / методов.

У меня есть почти идентичный проект, который тоже отлично работает!

3 ответа

Решение

Выберите файл XIB, а затем выберите "Владелец файлов", который является желтым кубом. На боковой панели "Утилиты" выберите значок с кружком и стрелкой внутри (это "Инспектор соединений"). Затем вы можете Control + перетащить на свою кнопку.

//// Редактировать ////

После изучения вашего проекта... Вы наверняка удалили раскадровку, а затем добавили.xib, но не указали его класс или не связали его с представлением как выход.

Для этого:

  1. Выберите новый вид (XIB), затем выберите основной вид и в инспекторе удостоверений установите для его класса свое имя класса "AVYSViewController".

  2. Переключитесь на инспектор соединений и удерживайте Control + Перетащите розетку "вид" на главный вид в XIB.

Кроме того, ваш проект искал файл MainStoryBoard.storyboard. Так что избавьтесь от этой настройки, выбрав свой проект, затем выбрав цель, и на вкладке "Сводка" удалите все что угодно в поле "Основная раскадровка".

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

Я думаю, что я читаю ту же книгу, что и вы ("Программирование iOS" от Big Nerd Ranch). Если так, то да, у меня была такая же проблема, как и у вас. По общему признанию, я использую свой ноутбук, чтобы перейти через VNC к компьютеру Mac для работы с XCode, поэтому я подумал, что VNC неправильно захватывает клавиатуру, но оказалось, что это не VNC, так как я мог щелкнуть правой кнопкой мыши / cntl-click перетащить другие вещи.

По общему признанию я снова не провел много исследований, почему это не работало, но в то же время я просто щелкнул правой кнопкой мыши на кнопке, которая показывает события, которые испускает кнопка, затем перетащил событие "Touch Up Inside" и сбросил его на контроллер / владельца, который затем отобразил действия / методы для привязки события. Если вы посмотрите на страницу 17 (если вы читаете ту же книгу), то это событие, которое было подключено.

Извините, если есть какие-то явные ошибки с тем, что я только что сказал, только что начал читать эту книгу сегодня после большого обеда.

Я думаю, что вы должны перефразировать ваш вопрос.. Это очень запутанно. Но если я понимаю, что вы говорите, теперь у вас есть файлы, открытые бок о бок с помощью помощника редактора. Файл Xib слева, файл.h справа. правильный?

Теперь вы пытаетесь связать событие в элементе управления с методом, который вы определили в файле.h. право?

Так что, если вы на самом деле видите методы в файле.h, на которые хотите ссылаться, но редактор не позволяет вам ссылаться на них, то есть вероятность, что у вас есть файл xib рядом с неправильным.h файл. Вы уверены, что файл.xib и.h, которые расположены рядом, называются контроллером? controller.h и controller.xib?

Другие вопросы по тегам