モジュール/フレームワークからInterface BuilderでカスタムUIクラスを使用すると、すべてが完璧に機能します。しかし、私は私のプロジェクトでこのクラスの拡張を記述し、カスタムクラスを設定すると(Interface Builderで)、Interface Builderはカスタムクラスのモジュールを私のプロジェクトに設定します。私はコード内でこのカスタムクラスを使用しようとすると、Xcodeは言う:インターフェイスビルダーのカスタムクラスのモジュールが正しくありません
"Unknown class _TtC9*modulename*18*MyCustomLabel* in Interface Builder file."
例:
- TTTAttributedLabelは独立したモジュールとして新しいプロジェクトに追加(またはcocoapodsを投げます)。
- 単純なUILabelをストーリーボードに追加し、カスタムクラスをTTTAttributedLabelとして設定します。
- アウトレットを追加してこのラベルをコード化して印刷します(NSLog)。
XcodeはTTTAttributedLabelと記述します。
- はTTTAttributedLabel
extension TTTAttributedLabel{ }
- 削除し、Interface Builderでラベルの再カスタムクラスを設定するために、空の拡張子を追加します。
- ラベル(NSLog)を印刷します。
Xcodeは警告メッセージを書き、私たちのラベルはUILabelです。
これはInterface Builderのバグですか、モジュールの拡張の前に何かを書く必要がありますか?
情報:迅速、xcode6.3-7.3