Swift @IBActions в расширении ViewController - PullRequest
2 голосов
/ 20 февраля 2020

Я заметил в Swift / Xcode 11, что вы не можете ctrl-перетащить объект IB в расширение ViewController, чтобы создать IBAction, но вы можете вырезать / вставить его в ext. после нажатия Ctrl для создания IBAction в классе ViewController и это работает. Что-то не так с перемещением IBAction в расширение ViewController с использованием копирования и вставки? И почему перетаскивание Ctrl не работает для расширения V C? Я помещал действия UITextView в ext с другими функциями TextView, когда заметил это, но не до конца понимаю, почему не работает ctrl-drag, но кажется, что вырезание / вставка не дает никаких проблем. Спасибо за рассмотрение вопроса.

1 Ответ

1 голос
/ 20 февраля 2020

Если кто-то не работает на Apple, я не уверен, что мы получим реальный ответ здесь. Я могу угадать и дать вам альтернативу, которая работала для меня, хотя.

С точки зрения реализации функции Xcode, код, который поддерживает эти действия, вероятно, отличается ..

От того, что я видел контроль Перетаскивание работает, когда класс V C на раскадровке соответствует классу объекта, в который вы перетаскиваете.

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

Однако, Я также сделал IBAction / IBOutlet на родительских классах, и мне удалось заставить это работать, когда я начал перетаскивать С существующего забавного IBAction c (слева от него есть круг код) К раскадровке дочернего класса.

Короче говоря, я предполагаю, что сделано много предположений и кода, чтобы вы могли перетащить из раскадровки в код, и я почти уверен, что ограничения из-за сложностей в обработке угловых дел. Apple часто предпочитает вообще не допускать поведения, если существует возможность для случая со сломанным углом. Некоторые другие способы создания этих соединений (например, копирование и вставка), вероятно, проще.

...