diff --git a/CountryPicker/CountryPicker.h b/CountryPicker/CountryPicker.h index 9967b230..6ff83dd0 100644 --- a/CountryPicker/CountryPicker.h +++ b/CountryPicker/CountryPicker.h @@ -53,7 +53,7 @@ @protocol CountryPickerDelegate -- (void)countryPicker:(CountryPicker *)picker didSelectCountryWithName:(NSString *)name code:(NSString *)code; +- (void)countryPicker:(CountryPicker *)picker didSelectCountryWithName:(NSString *)name code:(NSString *)code dailCode:(NSString *)dailCode; @end diff --git a/CountryPicker/CountryPicker.m b/CountryPicker/CountryPicker.m index db484b88..81be9569 100644 --- a/CountryPicker/CountryPicker.m +++ b/CountryPicker/CountryPicker.m @@ -42,6 +42,9 @@ #pragma GCC diagnostic ignored "-Wgnu" +#define LangId @"en_US" //change Localized country from here for Egypt set LangId as @"ar_EG" + + #import #if !__has_feature(objc_arc) #error This class requires automatic reference counting @@ -53,7 +56,9 @@ @interface CountryPicker () @end -@implementation CountryPicker +@implementation CountryPicker{ +} +static NSDictionary *dialCode; //doesn't use _ prefix to avoid name clash with superclass @synthesize delegate; @@ -75,9 +80,23 @@ + (NSArray *)countryCodes { _countryCodes = [[[self countryCodesByName] objectsForKeys:[self countryNames] notFoundMarker:@""] copy]; } + return _countryCodes; } - ++ (NSDictionary *)diallingCodes +{ + + + static dispatch_once_t onceToken; + + dispatch_once (&onceToken, ^{ + // Do some work that happens once + NSString * plistPath = [[NSBundle mainBundle] pathForResource:@"DiallingCodes" ofType:@"plist"]; + dialCode = [NSDictionary dictionaryWithContentsOfFile:plistPath]; + }); + + return dialCode; +} + (NSDictionary *)countryNamesByCode { static NSDictionary *_countryNamesByCode = nil; @@ -87,13 +106,13 @@ + (NSDictionary *)countryNamesByCode for (NSString *code in [NSLocale ISOCountryCodes]) { NSString *countryName = [[NSLocale currentLocale] displayNameForKey:NSLocaleCountryCode value:code]; - + //workaround for simulator bug if (!countryName) { - countryName = [[NSLocale localeWithLocaleIdentifier:@"en_US"] displayNameForKey:NSLocaleCountryCode value:code]; + countryName = [[NSLocale localeWithLocaleIdentifier:LangId] displayNameForKey:NSLocaleCountryCode value:code]; } - + namesByCode[code] = countryName ?: code; } _countryNamesByCode = [namesByCode copy]; @@ -111,6 +130,7 @@ + (NSDictionary *)countryCodesByName for (NSString *code in countryNamesByCode) { codesByName[countryNamesByCode[code]] = code; + } _countryCodesByName = [codesByName copy]; } @@ -136,6 +156,7 @@ - (instancetype)initWithCoder:(NSCoder *)aDecoder { if ((self = [super initWithCoder:aDecoder])) { + dialCode = [[NSDictionary alloc]init]; [self setUp]; } return self; @@ -165,7 +186,11 @@ - (NSString *)selectedCountryCode NSUInteger index = (NSUInteger)[self selectedRowInComponent:0]; return [[self class] countryCodes][index]; } - +- (NSString *)selectedDailCountryCode +{ + NSUInteger index = (NSUInteger)[self selectedRowInComponent:0]; + return [[self class] countryCodes][index]; +} - (void)setSelectedCountryName:(NSString *)countryName animated:(BOOL)animated { NSUInteger index = [[[self class] countryNames] indexOfObject:countryName]; @@ -235,14 +260,34 @@ - (UIView *)pickerView:(__unused UIPickerView *)pickerView viewForRow:(NSInteger } [view addSubview:label]; + UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(150, 3, 245, 24)]; + label2.backgroundColor = [UIColor clearColor]; + label2.tag = 3; + [view addSubview:label2]; + + UIImageView *flagView = [[UIImageView alloc] initWithFrame:CGRectMake(3, 3, 24, 24)]; flagView.contentMode = UIViewContentModeScaleAspectFit; flagView.tag = 2; [view addSubview:flagView]; + + } - + ((UILabel *)[view viewWithTag:1]).text = [[self class] countryNames][(NSUInteger)row]; NSString *imagePath = [NSString stringWithFormat:@"CountryPicker.bundle/%@", [[self class] countryCodes][(NSUInteger) row]]; +<<<<<<< HEAD + ((UIImageView *)[view viewWithTag:2]).image = [UIImage imageNamed:imagePath]; + NSString *test =[[self class] countryCodes][(NSUInteger)row]; + NSString *code = [[[self class] diallingCodes] objectForKey:[test lowercaseString]]; + ((UILabel *)[view viewWithTag:3]).text = code; + + + + + + +======= UIImage *image; if ([[UIImage class] respondsToSelector:@selector(imageNamed:inBundle:compatibleWithTraitCollection:)]) image = [UIImage imageNamed:imagePath inBundle:[NSBundle bundleForClass:[CountryPicker class]] compatibleWithTraitCollection:nil]; @@ -251,6 +296,7 @@ - (UIView *)pickerView:(__unused UIPickerView *)pickerView viewForRow:(NSInteger ((UIImageView *)[view viewWithTag:2]).image = image; +>>>>>>> nicklockwood/master return view; } @@ -259,7 +305,10 @@ - (void)pickerView:(__unused UIPickerView *)pickerView inComponent:(__unused NSInteger)component { __strong id strongDelegate = delegate; - [strongDelegate countryPicker:self didSelectCountryWithName:self.selectedCountryName code:self.selectedCountryCode]; + NSString *test =[[self class] countryCodes][(NSUInteger)row]; + NSString *code = [[[self class] diallingCodes] objectForKey:[test lowercaseString]]; + + [strongDelegate countryPicker:self didSelectCountryWithName:self.selectedCountryName code:self.selectedCountryCode dailCode:code]; } @end diff --git a/CountryPicker/DiallingCodes.plist b/CountryPicker/DiallingCodes.plist new file mode 100755 index 00000000..da0d7ccd --- /dev/null +++ b/CountryPicker/DiallingCodes.plist @@ -0,0 +1,470 @@ + + + + + ac + 247 + ad + 376 + ae + 971 + af + 93 + ag + 1 + ai + 1 + al + 355 + am + 374 + an + 599 + ao + 244 + aq + 672 + ar + 54 + as + 1 + at + 43 + au + 61 + aw + 297 + az + 994 + ba + 387 + bb + 1 + bd + 880 + be + 32 + bf + 226 + bg + 359 + bh + 973 + bi + 257 + bj + 229 + bm + 1 + bn + 673 + bo + 591 + br + 55 + bs + 1 + bt + 975 + bw + 267 + by + 375 + bz + 501 + ca + 1 + cd + 243 + cf + 236 + cg + 242 + ch + 41 + ci + 225 + ck + 682 + cl + 56 + cm + 237 + cn + 86 + co + 57 + cr + 506 + cu + 53 + cv + 238 + cy + 357 + cz + 420 + de + 49 + dj + 253 + dk + 45 + dm + 1 + do + 1 + dz + 213 + ec + 593 + ee + 372 + eg + 20 + er + 291 + es + 34 + et + 251 + fi + 358 + fj + 679 + fk + 500 + fm + 691 + fo + 298 + fr + 33 + ga + 241 + gb + 44 + gd + 1 + ge + 995 + gf + 594 + gh + 233 + gi + 350 + gl + 299 + gm + 220 + gn + 224 + gp + 590 + gq + 240 + gr + 30 + gt + 502 + gu + 1 + gw + 245 + gy + 592 + hk + 852 + hn + 504 + hr + 385 + ht + 509 + hu + 36 + id + 62 + ie + 353 + il + 972 + in + 91 + io + 246 + iq + 964 + ir + 98 + is + 354 + it + 39 + ja + 81 + jm + 1 + jo + 962 + jp + 81 + ke + 254 + kg + 996 + kh + 855 + ki + 686 + km + 269 + kn + 1 + kp + 850 + kr + 82 + kw + 965 + ky + 1 + kz + 7 + la + 856 + lb + 961 + lc + 1 + li + 423 + lk + 94 + lr + 231 + ls + 266 + lt + 370 + lu + 352 + lv + 371 + ly + 218 + ma + 212 + mc + 377 + md + 373 + me + 382 + mg + 261 + mh + 692 + mk + 389 + ml + 223 + mm + 95 + mn + 976 + mo + 853 + mp + 1 + mq + 596 + mr + 222 + ms + 1 + mt + 356 + mu + 230 + mv + 960 + mw + 265 + mx + 52 + my + 60 + mz + 258 + na + 264 + nc + 687 + ne + 227 + ng + 234 + ni + 505 + nl + 31 + no + 47 + np + 977 + nr + 674 + nu + 683 + nz + 64 + om + 968 + pa + 507 + pe + 51 + pf + 689 + pg + 675 + ph + 63 + pk + 92 + pl + 48 + pm + 508 + pr + 1 + ps + 970 + pt + 351 + pw + 680 + py + 595 + qa + 974 + re + 262 + ro + 40 + rs + 381 + ru + 7 + rw + 250 + sa + 966 + sb + 677 + sc + 248 + sd + 249 + se + 46 + sg + 65 + sh + 290 + si + 386 + sk + 421 + sl + 232 + sm + 378 + sn + 221 + so + 252 + sr + 597 + st + 239 + sv + 503 + sx + 1 + sy + 963 + sz + 268 + tc + 1 + td + 235 + tg + 228 + th + 66 + tj + 992 + tk + 690 + tm + 993 + tn + 216 + to + 676 + tr + 90 + tt + 1 + tv + 688 + tw + 886 + tz + 255 + ua + 380 + ug + 256 + uk + 44 + us + 1 + uy + 598 + uz + 998 + va + 379 + vc + 1 + ve + 58 + vg + 1 + vi + 1 + vn + 84 + vu + 678 + wf + 681 + ws + 685 + xt + 800 + ye + 967 + za + 27 + zm + 260 + zw + 263 + + diff --git a/Examples/CountryPicker.png b/Examples/CountryPicker.png index 408487d4..8a671f0c 100644 Binary files a/Examples/CountryPicker.png and b/Examples/CountryPicker.png differ diff --git a/Examples/CountryPickerDemo.xcodeproj/project.pbxproj b/Examples/CountryPickerDemo.xcodeproj/project.pbxproj index 2537ce64..c150a9d1 100644 --- a/Examples/CountryPickerDemo.xcodeproj/project.pbxproj +++ b/Examples/CountryPickerDemo.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ 01D39FC614E60FBC002FC9B1 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D39FC514E60FBC002FC9B1 /* ViewController.m */; }; 01D39FC914E60FBC002FC9B1 /* ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 01D39FC714E60FBC002FC9B1 /* ViewController.xib */; }; 01D39FD814E60FE1002FC9B1 /* CountryPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D39FD614E60FE1002FC9B1 /* CountryPicker.m */; }; + 3DB456CD1AE7B24B005D85CB /* DiallingCodes.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3DB456CC1AE7B24B005D85CB /* DiallingCodes.plist */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -37,6 +38,7 @@ 01D39FC814E60FBC002FC9B1 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController.xib; sourceTree = ""; }; 01D39FD514E60FE1002FC9B1 /* CountryPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CountryPicker.h; sourceTree = ""; }; 01D39FD614E60FE1002FC9B1 /* CountryPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CountryPicker.m; sourceTree = ""; }; + 3DB456CC1AE7B24B005D85CB /* DiallingCodes.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = DiallingCodes.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -108,6 +110,7 @@ 01D39FD314E60FE1002FC9B1 /* CountryPicker */ = { isa = PBXGroup; children = ( + 3DB456CC1AE7B24B005D85CB /* DiallingCodes.plist */, 01D39FD514E60FE1002FC9B1 /* CountryPicker.h */, 01D39FD614E60FE1002FC9B1 /* CountryPicker.m */, 0182A9061A30B32700E9A7CF /* CountryPicker.bundle */, @@ -169,6 +172,7 @@ 01D39FBD14E60FBC002FC9B1 /* InfoPlist.strings in Resources */, 01D39FC914E60FBC002FC9B1 /* ViewController.xib in Resources */, 0182A9071A30B32700E9A7CF /* CountryPicker.bundle in Resources */, + 3DB456CD1AE7B24B005D85CB /* DiallingCodes.plist in Resources */, 01695AE6174E229D00B53DBA /* Default-568h@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -274,7 +278,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; RUN_CLANG_STATIC_ANALYZER = YES; SDKROOT = iphoneos; @@ -340,7 +344,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; RUN_CLANG_STATIC_ANALYZER = YES; SDKROOT = iphoneos; @@ -355,6 +359,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_TREAT_WARNINGS_AS_ERRORS = YES; INFOPLIST_FILE = "CountryPickerDemo/CountryPickerDemo-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = "$(TARGET_NAME)"; WARNING_CFLAGS = ( "-Wall", @@ -370,6 +375,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_TREAT_WARNINGS_AS_ERRORS = YES; INFOPLIST_FILE = "CountryPickerDemo/CountryPickerDemo-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = "$(TARGET_NAME)"; WARNING_CFLAGS = ( "-Wall", diff --git a/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..d1faa3e9 --- /dev/null +++ b/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/xcshareddata/CountryPickerDemo.xccheckout b/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/xcshareddata/CountryPickerDemo.xccheckout new file mode 100644 index 00000000..794bb964 --- /dev/null +++ b/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/xcshareddata/CountryPickerDemo.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 2F54B6FC-3864-4E40-825B-24EA4092C8AF + IDESourceControlProjectName + CountryPickerDemo + IDESourceControlProjectOriginsDictionary + + 4EAF69E85F1CA4BF3F8636C8E3F937C079AF0BB7 + https://github.com/dimohamdy/CountryPicker.git + + IDESourceControlProjectPath + Examples/CountryPickerDemo.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + 4EAF69E85F1CA4BF3F8636C8E3F937C079AF0BB7 + ../../.. + + IDESourceControlProjectURL + https://github.com/dimohamdy/CountryPicker.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + 4EAF69E85F1CA4BF3F8636C8E3F937C079AF0BB7 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 4EAF69E85F1CA4BF3F8636C8E3F937C079AF0BB7 + IDESourceControlWCCName + CountryPicker + + + + diff --git a/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/xcuserdata/binaryboy.xcuserdatad/UserInterfaceState.xcuserstate b/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/xcuserdata/binaryboy.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 00000000..fc31f3be Binary files /dev/null and b/Examples/CountryPickerDemo.xcodeproj/project.xcworkspace/xcuserdata/binaryboy.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Examples/CountryPickerDemo.xcodeproj/xcuserdata/binaryboy.xcuserdatad/xcschemes/CountryPickerDemo.xcscheme b/Examples/CountryPickerDemo.xcodeproj/xcuserdata/binaryboy.xcuserdatad/xcschemes/CountryPickerDemo.xcscheme new file mode 100644 index 00000000..39131aaa --- /dev/null +++ b/Examples/CountryPickerDemo.xcodeproj/xcuserdata/binaryboy.xcuserdatad/xcschemes/CountryPickerDemo.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/CountryPickerDemo.xcodeproj/xcuserdata/binaryboy.xcuserdatad/xcschemes/xcschememanagement.plist b/Examples/CountryPickerDemo.xcodeproj/xcuserdata/binaryboy.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..c1971e2b --- /dev/null +++ b/Examples/CountryPickerDemo.xcodeproj/xcuserdata/binaryboy.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + CountryPickerDemo.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 01D39FAD14E60FBC002FC9B1 + + primary + + + + + diff --git a/Examples/CountryPickerDemo/ViewController.h b/Examples/CountryPickerDemo/ViewController.h index fbe754bb..a38f1488 100644 --- a/Examples/CountryPickerDemo/ViewController.h +++ b/Examples/CountryPickerDemo/ViewController.h @@ -13,5 +13,5 @@ @property (nonatomic, strong) IBOutlet UILabel *nameLabel; @property (nonatomic, strong) IBOutlet UILabel *codeLabel; - +@property (nonatomic, strong) IBOutlet UILabel *dailCodeLabel; @end diff --git a/Examples/CountryPickerDemo/ViewController.m b/Examples/CountryPickerDemo/ViewController.m index f07e9e95..6db6a3a7 100644 --- a/Examples/CountryPickerDemo/ViewController.m +++ b/Examples/CountryPickerDemo/ViewController.m @@ -10,12 +10,14 @@ @implementation ViewController -@synthesize nameLabel, codeLabel; +@synthesize nameLabel, codeLabel, dailCodeLabel; -- (void)countryPicker:(__unused CountryPicker *)picker didSelectCountryWithName:(NSString *)name code:(NSString *)code +- (void)countryPicker:(__unused CountryPicker *)picker didSelectCountryWithName:(NSString *)name code:(NSString *)code dailCode:(NSString *)dailCode { self.nameLabel.text = name; self.codeLabel.text = code; + self.dailCodeLabel.text = dailCode; + } @end diff --git a/Examples/CountryPickerDemo/en.lproj/ViewController.xib b/Examples/CountryPickerDemo/en.lproj/ViewController.xib index 87efdfb5..89ce1e75 100644 --- a/Examples/CountryPickerDemo/en.lproj/ViewController.xib +++ b/Examples/CountryPickerDemo/en.lproj/ViewController.xib @@ -1,259 +1,378 @@ - - 1280 - 11C74 - 1938 - 1138.23 - 567.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 933 - - - IBUIPickerView - IBUIView - IBUILabel - IBProxyObject - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 290 - {{0, 244}, {320, 216}} - - - - _NS:650 - IBCocoaTouchFramework - YES - - - - 292 - {{61, 50}, {198, 21}} - - - - _NS:328 - NO - YES - 7 - NO - IBCocoaTouchFramework - Name - - 1 - MCAwIDAAA - - - 1 - 10 - 1 - - 1 - 17 - - - Helvetica - 17 - 16 - - - - - 292 - {{136, 105}, {48, 21}} - - - - _NS:328 - NO - YES - 7 - NO - IBCocoaTouchFramework - Code - - - 1 - 10 - 1 - - - - - {{0, 20}, {320, 460}} - - - - - 3 - MC43NQA - - 2 - - - NO - - IBCocoaTouchFramework - - - - - - - view - - - - 7 - - - - nameLabel - - - - 13 - - - - codeLabel - - - - 14 - - - - delegate - - - - 9 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 6 - - - - - - - - - - 11 - - - - - 10 - - - - - 8 - - - - - - - ViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - CountryPicker - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 14 - - - - - CountryPicker - UIPickerView - - IBProjectSource - ./Classes/CountryPicker.h - - - - ViewController - UIViewController - - UILabel - UILabel - - - - codeLabel - UILabel - - - nameLabel - UILabel - - - - IBProjectSource - ./Classes/ViewController.h - - - - - 0 - IBCocoaTouchFramework - YES - 3 - 933 - + + 1280 + 14C1514 + 6250 + 1344.72 + 757.30 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 6244 + + + IBProxyObject + IBUILabel + IBUIPickerView + IBUIView + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + + + 290 + {{0, 244}, {320, 216}} + + + _NS:650 + IBCocoaTouchFramework + YES + + + + 292 + {{61, 50}, {198, 21}} + + + + _NS:328 + NO + YES + 7 + NO + IBCocoaTouchFramework + Name + + 1 + MCAwIDAAA + darkTextColor + + + 1 + 10 + 1 + + 1 + 17 + + + HelveticaNeue + 17 + 16 + + YES + + + + 292 + {{136, 105}, {48, 21}} + + + + _NS:328 + NO + YES + 7 + NO + IBCocoaTouchFramework + Code + + + 1 + 10 + 1 + + + YES + + + + 292 + {{119, 152}, {82, 21}} + + + + {251, 251} + NO + 7 + NO + IBCocoaTouchFramework + DailCode + + + 0 + 1 + + + NO + YES + + + {{0, 20}, {320, 460}} + + + + + 3 + MC43NQA + + 2 + + + NO + + + IBUISimulatedFreeformSizeMetricsSentinel + Freeform + + IBCocoaTouchFramework + + + + + + + view + + + + 7 + + + + nameLabel + + + + 13 + + + + codeLabel + + + + 14 + + + + dailCodeLabel + + + + 16 + + + + delegate + + + + 9 + + + + + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 6 + + + + + + + + + + + 11 + + + + + 10 + + + + + 8 + + + + + 15 + + + + + + + ViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + CountryPicker + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + + + 16 + + + + + CountryPicker + UIPickerView + + IBProjectSource + ../../CountryPicker/CountryPicker.h + + + + ViewController + UIViewController + + UILabel + UILabel + UILabel + + + + codeLabel + UILabel + + + dailCodeLabel + UILabel + + + nameLabel + UILabel + + + + IBProjectSource + ../CountryPickerDemo/ViewController.h + + + + + + UIGestureRecognizer + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIGestureRecognizer.h + + + + UILabel + UIView + + IBFrameworkSource + UIKit.framework/Headers/UILabel.h + + + + UIPickerView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIPickerView.h + + + + UIResponder + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBCocoaTouchFramework + NO + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 +