IB Designables дает странное предупреждение при использовании пользовательского класса
Я пытаюсь подклассировать свой UIButton на моей раскадровке с помощью специального класса быстрого действия, который должен показывать кнопку как пользовательскую кнопку гамбургера.
Я получаю это предупреждение и не вижу кнопку Hamburger, которая отображается в Interface Builder, хотя она будет работать периодически.
Пользовательский класс называется NTHamburgerButton, я не знаю, почему строка над символами появляется перед именем класса.
IB Designables: использование класса UIButton для объекта с пользовательским классом потому что класса _TtC6CProjectName17NTHamburgerButton не существует.
Ответы
Ответ 1
Этот вопрос, кажется, снова получает некоторое внимание, поэтому я дам обновление.
Этот вопрос существовал в смешанном проекте Obj-C и Swift. Таким образом, рассматриваемый класс был классом Swift.
При создании классов Swift в Obj-C вы можете использовать следующий синтаксис
@objc(NTHamburgerButton) public class NTHamburgerButton : UIButton {}
В противном случае в файле {Project-Name} -Swift.h, который создается Xcode, вы увидите, что он генерирует эти уникальные имена классов, подобные этому, из вопроса.
Единственная реальная проблема здесь заключалась в том, что файл NTHamburgerButton.swift не включался в Продукт, который я смотрел на время, но если я переключил цели, он работал нормально. Таким образом, прерывистый вопрос.
Ответ 2
Я столкнулся с той же проблемой, и я нашел ответ от другого вопроса:
введите ссылку здесь
Я просто обновляю все представления
![введите описание изображения здесь]()
Это работает для меня. Надеюсь, он вам тоже поможет.
Ответ 3
Для меня были необходимы оба решения Codermonk и specialvict, но недостаточно.
Мне также пришлось включить Inherit From Target в построителе интерфейсов:
![введите описание изображения здесь]()
Это помогло мне.