Ctrl-Drag от кнопки к методу не работает. Xcode/Interface Builder
Я создаю приложение для iOS, и у меня есть большая часть кода /GUI (это приложение с одним представлением). Теперь у меня есть файлы.xib и controller.h рядом друг с другом, и я хочу связать нажатие кнопки с определенным действием. Каждый раз, когда я пытаюсь ничего не происходит. Индикатор пользовательского интерфейса, который я перетаскиваю, отображается, но он не позволяет мне подключиться к методу. Это происходит для всех объектов / методов.
У меня есть почти идентичный проект, который тоже отлично работает!
3 ответа
Выберите файл XIB, а затем выберите "Владелец файлов", который является желтым кубом. На боковой панели "Утилиты" выберите значок с кружком и стрелкой внутри (это "Инспектор соединений"). Затем вы можете Control + перетащить на свою кнопку.
//// Редактировать ////
После изучения вашего проекта... Вы наверняка удалили раскадровку, а затем добавили.xib, но не указали его класс или не связали его с представлением как выход.
Для этого:
Выберите новый вид (XIB), затем выберите основной вид и в инспекторе удостоверений установите для его класса свое имя класса "AVYSViewController".
Переключитесь на инспектор соединений и удерживайте 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?