- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如果您使用 Cocoa 一段时间,您可能熟悉 NSDateFormatter
和 NSNumberFormatter
。它们可以方便地从日期和数字创建格式化显示字符串,或者将日期或数字字符串转换为数值,同时支持不同的语言和区域设置。
几周前,我偶然发现了 NSDateComponentsFormatter
,它可以让您创建格式化的时间间隔,例如“4 小时 37 分 17 秒”。很酷。
还有相关的 NSDateIntervalFormatter
,它通过比较 2 个日期来创建字符串。
还有一些非常晦涩的 NSFormatter 子类:
NSMassFormatter
NSByteCountFormatter
NSLengthFormatter
NSEnergyFormatter
NSPersonNameComponentsFormatter
根据评论,我添加了 NSPersonNameComponentsFormatter
。
在 Xcode 帮助系统中搜索“NS*Formatter”可以找到其中的大部分,但不是全部。 (看起来帮助文本必须正确索引才能进行搜索,这很烦人。)
这使我能够找到的总数达到
NSDateIntervalFormatter -Difference between 2 dates
NSDateComponentsFormatter -NSDateComponents to/from string
NSDateFormatter -Formats NSDates as strings
NSNumberFormatter -Formats numbers as strings
NSMassFormatter -Formats mass quantity as strings
NSByteCountFormatter -Formats byte counts in K, MB, GB, etc.
NSLengthFormatter -Formats length values
NSEnergyFormatter -Displays energy qualities in Joules or Calories
NSPersonNameComponentsFormatter - displays localized formatted names
令人讨厌的是,这些格式化程序中的许多看起来都没有语言环境属性,因此使用它们来创建系统默认语言环境以外的语言/语言环境的格式化字符串并不是很容易。如果我遗漏了什么,请告诉我。
还有其他人知道我缺少的其他格式化程序吗?这些内容非常晦涩,但如果您需要它们,可以为您节省大量时间。
问题第 2 部分:除了系统默认区域设置之外,是否有一种方法可以从缺少区域设置属性的格式化程序中获取输出?他们并不都拥有并尊重语言环境属性,这似乎很愚蠢。需要为当前语言环境以外的语言/语言环境生成输出是很常见的。
最佳答案
无需搜索。 NSFormatter
documentation列出它的所有子类。查看页面顶部的“继承自” block 。
请注意,此信息在 Xcode 7.3 文档阅读器中不可用。它仅在在线文档中可用(或通过使用出色的 Dash reader )。
关于ios - `NSFormatter` 有多少个晦涩的子类?知道其他人吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530419/
我需要为某些字段创建一个自定义 NSFormatter,但如果值无效,我不想使用警报表来显示错误消息...我更喜欢仅使用 NSBeep()。这是可能的还是我必须用 NSFormatter 提出的标准表
这个问题在这里已经有了答案: dateFromString returns nil for some values (1 个回答) 关闭 6 年前。 我的格式化程序返回 nil 和一些日期字符串,这
如果您使用 Cocoa 一段时间,您可能熟悉 NSDateFormatter 和 NSNumberFormatter。它们可以方便地从日期和数字创建格式化显示字符串,或者将日期或数字字符串转换为数值,
我正在尝试使用一个类来覆盖 OS X 应用程序中的 NSFormatter。我尝试了书中的一个例子,但它来自旧版本的 XCode。我的问题是我不知道如何设置 NSTextfield 的格式化程序。我不
我有一个 NSPopUpButton,其内容值绑定(bind)到 NSNumbers 的 NSArray。 NSPopUpButton 在其弹出菜单中正确显示数字数组。但是,当我更改所选值时,我收到一
我已经使用绑定(bind)到数组 Controller 的表设置了简单的 Xcode 项目。如果数组 Controller 充满了具有字符串属性的实体,它就可以正常工作。但是,我想将属性更改为 BOO
在 Cocoa 中,我有一个 NSOutlineView,其中单元格是 NSTextFieldCell。该单元格显示的值是根据特定规则格式化的字符串(例如 float 或中间有空格的 float 对)
我正在获取字符串中对象的价格,我想将其格式化为货币。我正在使用以下代码: var priceString : NSString = urlDict.objectForKey("price") as N
我在日期格式方面遇到了真正的困难。我想完全忽略时区,因为所有时间都被认为是本地时间。我在 Playground 上试过了,效果很好。 var dateFormatter: NSDateFormatte
我想使用 NSFormatter 子类来格式化我用来显示选项列表的 NSPopUpButton 的内容。 基本上,我有一个 MyObjects 的 NSArray,它通过内容值绑定(bind)绑定(b
我想对输入字符串中的第一个字符进行着色。使用 controlDidChange 委托(delegate)方法可以轻松完成此操作。但是添加格式化程序后使用: [field setFormatter:[[
我在这里阅读了类似的问题,并在我的应用程序中编写了此方法 let formatter = NumberFormatter() func convertEngNumToPersi
我有一种方法可以将特定格式的字符串转换为 NSDate,但它偶尔会返回 nil。 - (NSDate *)dateFromString:(NSString *)dateAndTime { NS
我在 Swift 中有一个 NSFormatter,它附加到 NSTextField。它可以防止输入非法字符,但是当我尝试访问下一个字段的值时,它给出了一个 nil 值。 下面是类: class PS
我正在尝试为 SMPTE 时间代码格式化两个 NSTextField,其格式为:HH:MM:SS:FF。然而,当用户将SMPTE编码切换为丢帧时,SS和FF之间的分隔符需要切换为;(HH:MM:SS;
在Qt和C#中,我能够轻松地为电话号码和序列号等内容定义输入掩码。到目前为止,我读过的所有内容都让我相信 NSFormatter 就是答案,但我很难找到一个完整的示例,但它并不糟糕。我真的很想为序列号
我有一个必须是唯一的文本字段,因此我添加了自定义 NSFormatter (见下文) 格式化程序可以工作,正如您在屏幕截图中看到的那样,但是我正在使用的连续绑定(bind)已损坏,因此例如绑定(bin
我正在尝试将 NSFormatter 对象添加到 NSTextField 中,以便我可以验证文本字段是否仅包含字母数字字符串。 所以我这样做: 我创建了一个新的 Swift macOS 应用。 我将
我有一个项目当前使用带有绑定(bind)的基于单元格的 NSTableViews。我正在更新项目以改用 View 。对于单元格,我可以在代码中实例化 NSFormatter,将其添加到 NSTable
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我是一名优秀的程序员,十分优秀!