使用用户定义的运行时属性设置 defaultTextAttributes?
Posted
技术标签:
【中文标题】使用用户定义的运行时属性设置 defaultTextAttributes?【英文标题】:Set defaultTextAttributes using User Defined Runtime Attributes? 【发布时间】:2018-02-03 19:58:36 【问题描述】:说你正在设置
field
.defaultTextAttributes
.updateValue(20.0, forKey: NSAttributedStringKey.kern.rawValue)
(顺便说一句,您这样做是为了分隔文本,例如 t h i s。)
事实上,有没有办法使用用户定义的运行时属性来设置,
就在 Xcode 的情节提要上?
【问题讨论】:
【参考方案1】:不,没有。用户定义的运行时属性仅适用于键值编码适用的情况,值类型范围有限。稍加思考就会发现您的代码不能以这种方式表达。
但是,您可以创建子类以定义自定义属性并将其在用户定义的运行时属性中设置为 20,然后使用 setter 观察者响应以运行您显示的代码。这样,不同的字段可以根据情节提要中的设置具有不同的紧缩值。
(如果你要这样做,你不妨把这个属性设为 IBInspectable;IBInspectable 有效是用户定义的运行时属性,具有不同的接口。)
【讨论】:
好东西。这是否意味着.defaultTextAttributes
不符合键值对? (他们将来能否“使那个”键值合规,还是我只是不理解某些东西?)
试试我说的。尝试使用 set(_:forKey:)
重写您的代码,仅使用 Boolean、NSNumber、NSString、CGPoint、CGSize、CGRect、NSRange 或 UIColor 的值类型。你能做到吗?
对不起,如果我的进一步问题不清楚。 (是的,我熟悉如何“制作自己的”属性以在 U.D.R.A 中使用,当然还有使用 IBInspectable。)再次欢呼以上是关于使用用户定义的运行时属性设置 defaultTextAttributes?的主要内容,如果未能解决你的问题,请参考以下文章
具有 Interface Builder 用户定义的运行时属性的本地化字符串
无法在 (UIButton) 上设置 () 用户定义的检查属性