3

我有一个 NSPopUpButton,我想用它来选择打开文件的文本编码。

我已经有了一些如何实现它的想法,但是当我开始学习 Objective-C 和 Cocoa 时,我几乎可以肯定有更好的方法来完成我想要的。

我需要一个带有编码名称的 NSString 和一个关联的 NSStringEncoding 值。

我曾想过创建一个表示编码(名称和值)的类,并有一个带有这种类型对象的 NSArray,然后用数组的内容填充 NSPopUpButton,但我认为应该有更好的方法。

我对 NSDictionary 类不是很熟悉,但我怀疑这会让事情变得更容易。

有人可以给我一个提示吗?

4

1 回答 1

6

创建字典,将编码作为值,将 NSPopUpButton 的名称作为键

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
NSNumber numberWithLong:NSASCIIStringEncoding], @"ASCII", 
[NSNumber numberWithLong:NSUnicodeStringEncoding], @"Unicode", nil];

然后将它们添加到 NSPopUpButton

[myPopUpButton addItemsWithTitles:[dict allKeys]]

然后获取用户选择的编码

[dict objectForKey:[myPopUpButton titleOfSelectedItem]]

注意:您需要将字符串编码枚举包装在一个对象中,例如 NSValue 或 NSNumber。

于 2012-07-13T13:21:00.857 回答