问题标签 [nsformatter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 在基于视图的 NSTableViews 中维护对 NSFormatter 的引用
我有一个项目,目前使用基于单元的 NSTableViews WITH 绑定。我正在更新项目以改用视图。使用单元格,我可以在代码中实例化一个 NSFormatter,将其添加到 NSTableColumn 的数据单元格的格式化程序属性中,维护对该格式化程序的引用,并以编程方式更改格式化程序的属性。我没有看到对基于视图的表格视图做同样事情的策略。
使用基于视图的表格视图,我可以在原型视图的文本字段上设置格式化程序,但该格式化程序也是原型。该格式化程序将被实例化多次,因此我无法维护对原型格式化程序的引用。作为另一种解决方案,我使用我的格式化程序类创建了一个自定义格式化程序对象,将我的 tablecellview 的出口拖到格式化程序,但这根本不起作用。
我需要能够以编程方式调整我的格式化程序在基于视图的表格视图中的工作方式。
swift - Swift将货币字符串转换为双精度
我有一个字符串,"$4,102.33"
需要转换为双精度。这将永远是美国。我唯一的方法是删除然后转换为双倍的$
黑客,
。似乎NSFormatter
只让我转换为货币而不是从它。$
除了删除and之外,是否有内置功能或更好的方法,
?在将其转换为双倍之前?
ios - 用于在 Swift 3 中将英文数字转换为波斯或阿拉伯数字的 NSFormatter
我在这里阅读了类似的问题并在我的应用程序中编写此方法
我没有得到错误但我也没有得到结果!
我的号码是这样的:
我在另一个有效的视图控制器中使用了另一个数字但我想以波斯或阿拉伯数字格式而不是英文格式显示这个数字
string - 如何在 Swift 3 中处理分隔符格式
在寻找(格式化)删除逗号的方法时遇到很多麻烦,如果没有找到逗号,则保持原样。
我希望实现的是获取距离的结果并将其显示在标签中,以便格式为:
4589.163
代替
4,589.163
如果没有找到逗号分隔符,则保持原样
479.996
我的代码:
如果可以满足我的要求,我正在寻找 Formatter。
任何帮助将不胜感激。
objective-c - 子类化 Formatter 以在 Swift 3.2 及更高版本中接受 Swift 结构
我需要在几个地方将同一条数据格式化为人类可读的格式。但是,我有几个框架以不同的方式表示这些信息。为避免重复此代码,我有一个Formatter
用于格式化此数据的通用表示的方法。任何想要使用这种人类可读表示的框架都可以让他们的数据声明符合一个Protocol
(通常在扩展中),将他们自己的表示转换Struct
为格式化程序使用的通用表示。
这正如我在 Swift 3 中所期望的那样工作。但是,在 Swift 3.2 及更高版本中,向Protocol
内部的强制转换string(for obj:)
失败。我不知道这是故意的改变,还是一个错误。在这个例子中:
作为一种解决方法,如果我执行以下任何操作,问题就会消失:
- 使用便利
string(from:)
功能,而不是string(for:)
从Formatter
. WidgetFormatter
不再有子类(从函数中Formatter
删除override
注释)string(for:)
- Have
Widget
be aclass
,以及任何符合 的WidgetRepresentable
。
最后两点让我想知道这是否是Swift之间NSFoundation
的Objective-C 桥接问题。Foundation
我的方法是否存在问题,或者这是 Swift 中的错误?如果是后者,我会归档雷达。
objective-c - 如何验证自定义 NSFormatter 中的“最终”字符串
我正在尝试通过验证NSTextField
,NSFormatter
我的问题是我可以验证部分字符串并在用户输入 with 时更改单元格的内容isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:
,但不是最终的结束字符串。
我的问题与http://www.cocoabuilder.com/archive/cocoa/123473-final-string-validation-in-custom-nsformatter.html完全一样。有什么方法可以在通过格式化程序验证最终字符串后更改单元格的内容?例如,只要该单元格具有焦点,文本字段中的“8/”就有效,一旦单元格失去焦点,就需要将其更改为“8/1”。
我尝试了该线程中提到的解决方案,但是更改其中object
的getObjectValue:forString:errorDescription:
并不会更改文本字段中的文本。
PS我想在NSFormatter
方法中做到这一点。使用NSTextField
委托不是我的选择。
swift - 如何以未来的方式更新使用 NSDatePicker 设置的日期并保持时间?
我正在尝试使用 NSDatePicker 设置事件应该发生的时间。然而不幸的是,此控件用于设置完整的日期,因此当我必须使用该值时,它可能属于过去。我的目标是使用 datePicker 设置未来的时间。
为了创建一个保留这个时间的未来日期,我尝试设置一个循环,在我们到达未来点之前增加一天,但这在时间和处理方面似乎非常昂贵,或者我尝试仅使用时间手动构建日期. 不幸的是,由于我缺乏这方面的经验,我认为我没有找到可行的解决方案。
这是我正在使用的代码:
我在 Stack Overflow 上发现了几个问题,这些问题有助于我更好地理解如何使用 NSDateFormatter 以及一个很棒的在线教程http://www.knowstack.com/swift-nsdateformatter/。我还发现了一些与我相似的问题,例如: 返回未来一小时的日期和init] 返回过去一小时的日期?但他们没有帮助我。
苹果开发者文档: NSDatePicker NSDateFormatter