2010-11-25 10 views
5

私はUIPickerViewに関して助けが必要です。私のアプリケーションでは、利用可能な国でUIPickerViewを表示する必要があります。どの団体でも既に国の選択を実装している場合は、コードを共有してください。利用可能な国のUIPickerView

おかげ

+0

コードを共有してください??? – alecnash

答えて

1

利用できる国の配列を作成し、これらのdelgate方法でこの配列を使用して、データ・ソース・メソッド

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 

- 配列

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 

の指標で>戻り値配列内の要素数

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 

return 1; 
+0

返信いただきありがとうございます。実際にAPIで使用可能な国を取得する方法を知る必要があります。 – santosh

+0

0受け入れる \t ネイティブアドレスの国選択コントローラを呼び出す方法はありますか? – santosh

+1

[NSLocale ISOCountryCodes]はNSStringsとして国コードのNSArrayを取得します。 [[NSLocale displayNameForKey:NSLocaleCountryCode value:countryCode];を使用して、それぞれの表示名を取得できます。 – Hafthor

20

ウルピッカー入力のためにそれを使用することができます。

https://gist.github.com/vilcsak/c205dfd153a3e465f47e

を実装はかなり単純ですが、ここではコードの一部です:

- (id)init { 
    if ((self = [super init])) { 
     self.countries = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Countries" ofType:@"plist"]]; 
    } 
    return self; 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    self.currentCountry = [[self.countries objectAtIndex:row] objectForKey:@"code"]; 
    self.countryLabel.text = [[self.countries objectAtIndex:row] objectForKey:@"name"]; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 
    return self.countries.count; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    return [[self.countries objectAtIndex:row] objectForKey:@"name"]; 
} 
+0

あなたのコードAndrewをplistにお寄せいただきありがとうございます! – brasskazoo

3

あなたはこのような利用可能な国の名前のリストを取得することができます。

self.countryArray = [NSMutableArray new]; 
for (NSString *countryCode in [NSLocale ISOCountryCodes]) { 
    NSString *country = [[NSLocale systemLocale] displayNameForKey:NSLocaleCountryCode value:countryCode]; 
    [self.countryArray addObject: country]; 
} 

、ここではいくつかのUIPickerデリゲートメソッドです:

0

ここで国リストデータピッカーについてのブログ記事へのリンクがありますポップオーバー。 http://iosblogl.blogspot.in/2015/11/pickerview-popover-with-country-list.html

+0

[リンクのみの回答](http://meta.stackoverflow.com/tags/link-only-answers/info)はお勧めできませんので、SOの回答は解決策の検索の終点でなければなりません。時間の経過とともに古くなる傾向がある参照の途中降機)。リンクを参考にして、ここにスタンドアロンの概要を追加することを検討してください。 – kleopatra

関連する問題