首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSFormatter将字符串更改为用户类型

使用NSFormatter将字符串更改为用户类型
EN

Stack Overflow用户
提问于 2011-09-24 05:06:59
回答 1查看 217关注 0票数 0

我正在写一个Mac桌面Cocoa应用程序。我有一个带有一些值的NSTableView,我正在尝试使用一个自定义的NSNumberFormatter来控制这些值。

我想要的行为:

当用户键入一个值时,如果他们键入-,我希望它的行为类似于计算器上的+/-按钮。因此,如果用户键入"500-“,那么我希望自动将该字符串替换为"-500”。

现在,我已经有了NSNumberFormatter的一个工作子类,它可以处理这种情况并返回我想要的替换字符串。但是当我在我的NSTableView中输入时,我的日志显示"500-“正在被"-500”替换,但是NSTableView只显示"500“,而没有显示-无论是在之前还是之后。

是否需要在xib或NSNumberFormatter子类中执行某些操作,以使NSTableView实际显示负数?

代码语言:javascript
复制
- (BOOL) isPartialStringValid:(NSString **)partialStringPtr 
       proposedSelectedRange:(NSRangePointer)proposedSelRangePtr 
              originalString:(NSString *)origString 
       originalSelectedRange:(NSRange)origSelRange 
            errorDescription:(NSString **)error

正在将此日志记录到控制台:

代码语言:javascript
复制
proposed string: 500-
replacement string: -500

但之后NSTableView中的单元格仍然只显示"500“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-24 05:56:34

事实证明,我原来的C语言技能已经生疏了,而且我没有正确地传递回新的字符串。

我写错了:

代码语言:javascript
复制
partialStringPtr = &validString;

但是正确的代码是:

代码语言:javascript
复制
*partialStringPtr = validString;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7534867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档