美文网首页iOS官方文档iOS文档翻译iOS 不一样的开发者文档
创建自定义格式化器 <- 数据格式化指南

创建自定义格式化器 <- 数据格式化指南

作者: raingu24 | 来源:发表于2017-08-05 20:06 被阅读9次

    你可以创建自定义的NSFormatter的子类,来格式化除日期和数字之外的数据的表示法。

    想要子类化NSFormatter,你必须至少重写如下方法:

    • stringForObjectValue:
    • getObjectValue:forString:errorDescription:

    在第一方法中,你把单元格(cell)的对象转换成字符串表示法;在第二种方法中,你把字符串转换为与单元格关联的对象。

    你也可以重写attributedStringForObjectValue:withDefaultAttributes:来把对象转换为与之有相关属性的字符串。例如,如果你想把负的总金额显示为红色,你使用该方法返回红色文本属性的字符串。在attributedStringForObjectValue:withDefaultAttributes:方法中,通过调用stringForObjectValue:方法得到无属性的字符串,然后给该字符串设置适当的属性。

    如果编辑的字符串必须和显示的字符串不同(例如,货币字段的显示版本显示的是美元符号,但是编辑版本不是),除了stirngForObjectValue:之外,还可以实现editingStringForObjectValue:。

    在OS X中,使用 isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription: 和 isPartialStringValid:newEditingString:errorDescription:,你可以在每个键按下的时候编辑单元格的原文内容,并防止用户输入无效的字符。你可以将此动态编辑应用于社会保障号码;数据录入人员只需要输入数字一次,因为格式化器会自动插入分隔字符。

    相关文章

      网友评论

        本文标题:创建自定义格式化器 <- 数据格式化指南

        本文链接:https://www.haomeiwen.com/subject/qdswlxtx.html