在Core数据实体中,我有一个“length”属性,我以厘米为单位保存长度。
我想让用户可以查看和编辑长度厘米或英寸。所以我把一个NSTextField放在NSPopUpButton旁边,以厘米和英寸作为选择。
根据NSTextField的选择设置NSPopUpButton格式的最佳方法是什么?如果这个问题合理的话,我想尽可能多地使用绑定。
我看到有
或者我可以写自定义代码来转换单位?
解决这个问题最优雅的方法是什么?
发布于 2014-05-04 15:08:54
如果您将用户的cm/in选择保留为每个实体的选择,并且该实体上有一个属性,则可以使用文本字段上的值绑定和自定义值转换器、弹出窗口上的cm/in选择绑定和实体上的keyPathsForValuesAffectingLength类方法来实现。
如果属性displaysInInches-或您所称的任何属性--注册为影响长度值的keyPath,则当弹出窗口切换并更新文本字段时,将调用自定义值转换器。
如果cm/in选择来自用户默认值(如果更改不是每个实例),则可以将弹出绑定到用户默认值,并让自定义值转换器考虑默认值,但更改弹出不会刷新textfield。因此,我认为您需要一个IBAction来触摸实例的长度。
您可以在此基础上添加一个数字格式化程序--特别是如果您的值转换器转换为NSNumber而不是NSString--但主要是为了本地化和有效数字数,而不是为cm/在数学中。
https://stackoverflow.com/questions/23460271
复制相似问题