Невозможно установить выходное соединение с ограничением в IB

Я запускаю XCode 5 с iOS 7. Мне нужно динамически изменить ограничение высоты UITextView до его макета. Я видел много сообщений о том, что это можно сделать, установив выходное соединение от ограничения в IB до исходного кода. Я пытаюсь установить соединение от выхода ограничения в IB до файла заголовка класса-владельца, но не могу установить соединение - IB не "подсвечивает" при перетаскивании файла заголовка, как при подключении от других объектов, таких как кнопки и т. д.

Кто-нибудь сталкивался с этим раньше? Вся помощь очень ценится.

5 ответов

Вот картина, на которой я это делаю. Я управляю перетаскиванием из ограничения в файл заголовка.

В реальной жизни я с большей вероятностью перетаскиваю управление в анонимную категорию в файле реализации, потому что я не хочу, чтобы свойство IBOutlet было общедоступным. Так вот и картина этого тоже. Извините, этот снимок экрана не показывает курсор: он находится в нижнем конце линии растяжения.

Вы можете установить розетку:

  1. Откройте редактор помощника и затем Ctrl+ перетащите текстовое представление в соответствующий файл заголовка. Вы должны увидеть свойство, созданное для textview.

  2. Введите вручную @property(nonatomic,retain)IBOutlet UITextField *yourTextField; Откройте редактор-помощник и перетащите его из небольшого пустого круга (слева от свойства) в соответствующий элемент управления в вашем контроллере представления.

Если вы все еще не можете установить соединение, очистите, сохраните ваш проект и повторите попытку.

Вы пытаетесь создать соединение в классе UIView? Кажется, вы можете создать соединение только в классе UIViewController, который связан с этой сценой в раскадровке.

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

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

Это позволит вам подключить все ваши IBOutlets, включая ограничения.

Хорошо, все еще не могу установить соединение с ограничением в IB. Однако я обошел проблему, сделав ограничение высоты текстового представления в качестве заполнителя в IB, который я заменил на NSLayoutConstraint, который я создал в представлении initWithCoder. Я поддерживаю ссылку на созданное ограничение и изменяю его "постоянное" свойство по мере необходимости.

Я, вероятно, буду придерживаться этого обходного пути, но если кто-нибудь может помочь мне с первоначальной проблемой, это будет очень цениться.

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