【发布时间】:2018-02-03 19:58:36
【问题描述】:
说你正在设置
field
.defaultTextAttributes
.updateValue(20.0, forKey: NSAttributedStringKey.kern.rawValue)
(顺便说一句,您这样做是为了分隔文本,例如 t h i s。)
事实上,有没有办法使用用户定义的运行时属性来设置,
就在 Xcode 的情节提要上?
【问题讨论】:
说你正在设置
field
.defaultTextAttributes
.updateValue(20.0, forKey: NSAttributedStringKey.kern.rawValue)
(顺便说一句,您这样做是为了分隔文本,例如 t h i s。)
事实上,有没有办法使用用户定义的运行时属性来设置,
就在 Xcode 的情节提要上?
【问题讨论】:
不,没有。用户定义的运行时属性仅适用于键值编码适用的情况,值类型范围有限。稍加思考就会发现您的代码不能以这种方式表达。
但是,您可以创建子类以定义自定义属性并将其在用户定义的运行时属性中设置为 20,然后使用 setter 观察者响应以运行您显示的代码。这样,不同的字段可以根据情节提要中的设置具有不同的紧缩值。
(如果你要这样做,你不妨把这个属性设为 IBInspectable;IBInspectable 有效是用户定义的运行时属性,具有不同的接口。)
【讨论】:
.defaultTextAttributes 不符合键值对? (他们将来能否“使那个”键值合规,还是我只是不理解某些东西?)
set(_:forKey:) 重写您的代码,仅使用 Boolean、NSNumber、NSString、CGPoint、CGSize、CGRect、NSRange 或 UIColor 的值类型。你能做到吗?