Другая работа для этого - изменить, как свойство перечисления появляется в построителе интерфейса. Например:
#if TARGET_INTERFACE_BUILDER
@property (nonatomic, assign) IBInspectable NSInteger fontWeight;
#else
@property (nonatomic, assign) FontWeight fontWeight;
#endif
Это предполагает перечисление под названием FontWeight. Он полагается на тот факт, что перечисления и их необработанные целочисленные значения могут быть использованы в Objective-C несколько взаимозаменяемо. После этого вы можете указать целое число в построителе интерфейса для свойства, которое не является идеальным, но работает и сохраняет небольшую степень безопасности при использовании того же свойства программно.
Это лучшая альтернатива, чем объявление отдельного целочисленного свойства, потому что вам не нужно писать дополнительную логику для обработки второго целочисленного свойства, которое также можно использовать для достижения того же самого.
Однако это не работает с Swift, потому что мы не можем неявно отбрасывать целое число в перечисление. Любые мысли о решении этого будут оценены.
обходной путь, своего рода, чтобы положить осматриваемом вычисленное свойство в перед значением, которое вы хотите установить. Конечно, он по-прежнему не будет волшебным образом появляться как всплывающее меню перечисляемых значений в Interface Builder; но по крайней мере вы можете определить контролируемое значение и использовать его для установки перечисления. – matt
На WWDC в этом году я спросил инженера Apple в лаборатории Developer Tools об этом. Он сказал, что согласен, что это будет отличная функция, но в настоящее время это невозможно. Он предложил мне подать радар на https://bugreport.apple.com, который я сделал. Он был закрыт как дубликат номера 15505220, но я бы очень рекомендовал людям, занимающимся подобными вопросами. Эти вещи часто решаются, если достаточно людей жалуются. –
как этот вопрос отличается от http://stackoverflow.com/questions/27432736/how-to-create-an-ibinspectable-of-type-enum – SwiftArchitect