Ctrl-Drag от кнопки к методу не работает.Xcode / Interface Builder - PullRequest
9 голосов
/ 02 февраля 2012

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

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

Ответы [ 3 ]

20 голосов
/ 02 февраля 2012

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

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

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

Для этого:

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

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

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

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

1 голос
/ 23 мая 2013

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

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

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

0 голосов
/ 02 февраля 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...