问题标签 [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.

0 投票
1 回答
77 浏览

objective-c - 在基于视图的 NSTableViews 中维护对 NSFormatter 的引用

我有一个项目,目前使用基于单元的 NSTableViews WITH 绑定。我正在更新项目以改用视图。使用单元格,我可以在代码中实例化一个 NSFormatter,将其添加到 NSTableColumn 的数据单元格的格式化程序属性中,维护对该格式化程序的引用,并以编程方式更改格式化程序的属性。我没有看到对基于视图的表格视图做同样事情的策略。

使用基于视图的表格视图,我可以在原型视图的文本字段上设置格式化程序,但该格式化程序也是原型。该格式化程序将被实例化多次,因此我无法维护对原型格式化程序的引用。作为另一种解决方案,我使用我的格式化程序类创建了一个自定义格式化程序对象,将我的 tablecellview 的出口拖到格式化程序,但这根本不起作用。

我需要能够以编程方式调整我的格式化程序在基于视图的表格视图中的工作方式。

0 投票
1 回答
113 浏览

macos - 如何将 NSLengthFormatter 与 NSTextField 一起使用?

我想弄清楚如何将 NSLengthFormatter 与 NSTextField 一起使用。输出应使用本地单位,但不显示单位。我尝试在代码和 setStringValue:@"22" 中手动设置格式化程序,但结果相同。我做错了什么?

截屏

0 投票
2 回答
8654 浏览

swift - Swift将货币字符串转换为双精度

我有一个字符串,"$4,102.33"需要转换为双精度。这将永远是美国。我唯一的方法是删除然后转换为双倍的$黑客,。似乎NSFormatter只让我转换为货币而不是从它。$除了删除and之外,是否有内置功能或更好的方法,?在将其转换为双倍之前?

0 投票
4 回答
2295 浏览

ios - 用于在 Swift 3 中将英文数字转换为波斯或阿拉伯数字的 NSFormatter

我在这里阅读了类似的问题并在我的应用程序中编写此方法

我没有得到错误但我也没有得到结果!

我的号码是这样的:

我在另一个有效的视图控制器中使用了另一个数字但我想以波斯或阿拉伯数字格式而不是英文格式显示这个数字

0 投票
2 回答
445 浏览

string - 如何在 Swift 3 中处理分隔符格式

在寻找(格式化)删除逗号的方法时遇到很多麻烦,如果没有找到逗号,则保持原样。

我希望实现的是获取距离的结果并将其显示在标签中,以便格式为:

4589.163

代替

4,589.163

如果没有找到逗号分隔符,则保持原样

479.996

我的代码:

如果可以满足我的要求,我正在寻找 Formatter。

任何帮助将不胜感激。

0 投票
0 回答
172 浏览

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 Widgetbe a class,以及任何符合 的WidgetRepresentable

最后两点让我想知道这是否是Swift之间NSFoundation的Objective-C 桥接问题。Foundation

我的方法是否存在问题,或者这是 Swift 中的错误?如果是后者,我会归档雷达。

0 投票
0 回答
176 浏览

objective-c - 如何验证自定义 NSFormatter 中的“最终”字符串

我正在尝试通过验证NSTextFieldNSFormatter我的问题是我可以验证部分字符串并在用户输入 with 时更改单元格的内容isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:,但不是最终的结束字符串。

我的问题与http://www.cocoabuilder.com/archive/cocoa/123473-final-string-validation-in-custom-nsformatter.html完全一样。有什么方法可以在通过格式化程序验证最终字符串后更改单元格的内容?例如,只要该单元格具有焦点,文本字段中的“8/”就有效,一旦单元格失去焦点,就需要将其更改为“8/1”。

我尝试了该线程中提到的解决方案,但是更改其中objectgetObjectValue:forString:errorDescription:并不会更改文本字段中的文本。

PS我想在NSFormatter方法中做到这一点。使用NSTextField委托不是我的选择。

0 投票
1 回答
174 浏览

objective-c - 在 `controlTextDidChange` 方法中使用自定义 NSFormatter 访问 NSTextField 的 `stringValue` 使其不可编辑。

我有NSFormatter一个文本字段的自定义,如here & here中所述。我也有这个文本字段的委托,我正在stringValue从委托方法访问controlTextDidChange:。使用此代码,当我尝试编辑文本字段时,它会不断地从 NSFormatter 重置它的值并使其不可编辑。

CustomFormatter.m

我的委托.m

0 投票
1 回答
633 浏览

swift - 编辑格式化的十进制文本字段时光标移动到结束 - Swift

我正在格式化一个UITextField这样它在打字时变成逗号分隔(十进制样式)。

所以12345678变成12,345,678

现在,当我编辑 时UITextField,说我要删除5,当时我点击 after5并删除它,但光标立即移动到文本的末尾,即 after 8

这是我在输入时用来格式化小数的代码:

它是这样调用的:

我尝试了以下方法但徒劳无功:

解决方案 1

解决方案 2

光标移动的原因可能是什么?它应该类似于链接中的任何帮助将不胜感激!

0 投票
0 回答
125 浏览

swift - 如何以未来的方式更新使用 NSDatePicker 设置的日期并保持时间?

我正在尝试使用 NSDatePicker 设置事件应该发生的时间。然而不幸的是,此控件用于设置完整的日期,因此当我必须使用该值时,它可能属于过去。我的目标是使用 datePicker 设置未来的时间。

在此处输入图像描述

为了创建一个保留这个时间的未来日期,我尝试设置一个循环,在我们到达未来点之前增加一天,但这在时间和处理方面似乎非常昂贵,或者我尝试仅使用时间手动构建日期. 不幸的是,由于我缺乏这方面的经验,我认为我没有找到可行的解决方案。

这是我正在使用的代码:

我在 Stack Overflow 上发现了几个问题,这些问题有助于我更好地理解如何使用 NSDateFormatter 以及一个很棒的在线教程http://www.knowstack.com/swift-nsdateformatter/。我还发现了一些与我相似的问题,例如: 返回未来一小时的日期init] 返回过去一小时的日期?但他们没有帮助我。

苹果开发者文档: NSDatePicker NSDateFormatter