NSPopUpButton所选项

时间:2015-05-24 00:58:47

标签: objective-c cocoa

我尝试将NSPopUpButton中所选项目的字符串值转换为它的int值(弹出窗口中的项目是各种数字):

txtUPs = [txtUPs stringByAppendingString:btnUPs.titleOfSelectedItem];
numUPs = (int) txtUPs;
NSLog(@"%i" ,numUPs);

而不是获得整数6(当我从弹出窗口中选择6时),我得到一个像26376这样的大数字。我做错了什么?

谢谢, 基思

2 个答案:

答案 0 :(得分:1)

要将字符串转换为整数值,请使用integerValue字符串方法。例如:

NSInteger selectedNumber = [btnUPs.titleOfSelectedValue integerValue];

答案 1 :(得分:0)

您应该使用number formatter。它将以本地化的方式处理转换。 (字符串呈现给用户,因此应该是可本地化的。)

NSString *stringValue = [txtUPs stringByAppendingString:btnUPs.titleOfSelectedItem];
NSNumberFormatter *formatter =[[NSNumberFormatter alloc] init];

// Configure the formatter, if you need to
formatter.numberStyle = NSNumberFormatterDecimalStyle
…

// Convert it
NSNumber *numberValue = [formatter numberFromString:stringValue];
int value = [numberValue intValue];

顺便说一句:从显示的值中获取内部程序值的方法可能会破坏:想想像">这样的项目。 1000"或数字格式化程序无法转换的值表示,即即" 10K5"