IBInspectable doesn't support enum ¯\_(ツ)_/¯
| Originator: | Dani.Arnaout | ||
| Number: | rdar://32443199 | Date Originated: | May 27 2017, 11:05 AM |
| Status: | Open | Resolved: | No |
| Product: | Xcode | Product Version: | 8.3.1 |
| Classification: | Suggestion | Reproducible: | Yes |
Summary:
It's well known that IBInspectable only supports the following types:
Int
CGFloat
Double
String
Bool
CGPoint
CGSize
CGRect
UIColor
UIImage
It would be awesome if we can have support for enum as well :/
This is important as the only possible workarounds are messy and bad, really bad. (Ex: using NSInteger or NSString)
Steps to Reproduce:
1- Create a class called "CustomLabel"
2- Create an enum called "DateFormat" and set three options (Short, Medium, Full)
enum DateFormat: Int {
case Short // 05/27/2017
case Medium // May 27,2017
case Full // May 27, 2017 9:10 AM
}
3- Create a var called format, a DateFromat enum with IBInspectable capability
class CustomLabel: UILabel {
@IBInspectable
var format: DateFormat = .Short {
didSet {
// update label
}
}
}
4- Go to your storyboard
5- Drag a UILabel to your view controller
6- Set its class to CustomLabel from the attribute inspector
7- Look for the new attribute "format" in the label's attribute inspector
Expected Results:
See an attribute called "format" that is an enum with three options (Short, Medium, Full)
Observed Results:
No new attributes for CustomLabel were added. Enums are not yet supported as IBInspectable
Version:
Xcode 8.3.1 (8E1000a)
macOS 10.12.5 (16F73)
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!