创建自定义格式化器

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

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

  • stringForObjectValue:
  • getObjectValue:forString:errorDescription:

在第一主意中,你把单元格(cell)的靶子转换到字符串表示法;在其次种方式中,你把字符串转换为与单元格关联的目的。

必发娱乐最新官方网址,您也可以重写attributedStringForObjectValue:withDefaultAttributes:来把目的转换为与之有连带属性的字符串。例如,若是您想把负的总金额突显为土色,你使用该方法再次来到黄褐文本属性的字符串。在attributedStringForObjectValue:withDefaultAttributes:方法中,通过调用stringForObjectValue:方法得到无属性的字符串,然后给该字符串设置适当的品质。

若果编辑的字符串必须和出示的字符串差异(例如,货币字段的显得版本显得的是美元符号,可是编辑版本不是),除了stirngForObjectValue:之外,还足以兑现editingStringForObjectValue:。

在OS X中,使用
isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:

isPartialStringValid:newEditingString:errorDescription:,你可以在各类键按下的时候编辑单元格的原稿内容,并预防用户输入无效的字符。你可以将此动态编辑应用于社会保险号码;数据录入人员只必要输入数字三回,因为格式化器会自动插入分隔字符。

发表评论

电子邮件地址不会被公开。 必填项已用*标注