3

ファイルを開くためのテキストエンコーディングを選択するために使用したいNSPopUpButtonがあります。

私はすでにこれを実装する方法についていくつかのアイデアを持っていますが、Objective-CとCocoaを学び始めているので、私が望むことを達成するためのより良い方法があるとほぼ確信しています。

エンコーディングの名前と関連するNSStringEncoding値を持つNSStringが必要です。

エンコーディング(名前と値)を表すクラスを作成し、このタイプのオブジェクトを含む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 に答える