From 967f2ed2b0583c8dbd90518b775905c5a0111107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Luthi?= Date: Mon, 10 Dec 2012 21:33:49 +0100 Subject: [PATCH 01/16] Make toolbar always 44 points tall --- XCDFormInputAccessoryView/XCDFormInputAccessoryView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m index 06a1fc2..cda6cc5 100644 --- a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m +++ b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m @@ -61,7 +61,7 @@ - (id) initWithResponders:(NSArray *)responders [self addSubview:_toolbar]; - self.frame = _toolbar.frame = (CGRect){CGPointZero, [_toolbar sizeThatFits:CGSizeZero]}; + self.frame = _toolbar.frame = CGRectMake(0, 0, 0, 44); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextFieldTextDidBeginEditingNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextViewTextDidBeginEditingNotification object:nil]; From 3865ed873f84af667603699529bd2c3450560959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Luthi?= Date: Thu, 31 Jan 2013 12:21:03 +0100 Subject: [PATCH 02/16] Use relative link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 07fd3c2..dee3d41 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ About ===== `XCDFormInputAccessoryView` is a view to be used above the keyboard with *previous*, *next* and *done* buttons for navigating text fields. -![screenshot](https://github.com/0xced/XCDFormInputAccessoryView/raw/master/Screenshots/XCDFormInputAccessoryView.png) +![screenshot](Screenshots/XCDFormInputAccessoryView.png) `XCDFormInputAccessoryView` uses ARC (Automatic Reference Counting) and must be built with Xcode 4.5 or greater. It has been tested on iOS 4, 5 and 6. From 26cc52073c09a3ec1054be012781d08e29b6d5e4 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Sat, 22 Feb 2014 13:02:06 +0800 Subject: [PATCH 03/16] Resign the previous responder. Before selecting the next responder, so keyboard events could be notified properly. --- XCDFormInputAccessoryView/XCDFormInputAccessoryView.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m index 06a1fc2..d81a4f9 100644 --- a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m +++ b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m @@ -155,6 +155,9 @@ - (void) selectAdjacentResponder:(UISegmentedControl *)sender if (adjacentResponderIndex >= 0 && adjacentResponderIndex < (NSInteger)[self.responders count]) adjacentResponder = [self.responders objectAtIndex:adjacentResponderIndex]; + // Resign the previous responder before selecting the next one, so the UIKeyboard events could be notified properly. + [firstResponder resignFirstResponder]; + [adjacentResponder becomeFirstResponder]; } From ae8871c8f566d0fd752ba18fff5f37191f904469 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Fri, 2 May 2014 00:36:32 +0800 Subject: [PATCH 04/16] Updated the toolbar with iOS 7 style. --- .../project.pbxproj | 45 +++++++++++- .../XCDFormInputAccessoryView.m | 73 ++++++++++++------- 2 files changed, 88 insertions(+), 30 deletions(-) diff --git a/Form Input Accessory View Demo.xcodeproj/project.pbxproj b/Form Input Accessory View Demo.xcodeproj/project.pbxproj index f99cfb2..8adbd0a 100644 --- a/Form Input Accessory View Demo.xcodeproj/project.pbxproj +++ b/Form Input Accessory View Demo.xcodeproj/project.pbxproj @@ -7,6 +7,14 @@ objects = { /* Begin PBXBuildFile section */ + 0162EE991912A712002EF274 /* UIButtonBarArrowLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE951912A712002EF274 /* UIButtonBarArrowLeft.png */; }; + 0162EE9A1912A712002EF274 /* UIButtonBarArrowLeft@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE961912A712002EF274 /* UIButtonBarArrowLeft@2x.png */; }; + 0162EE9B1912A712002EF274 /* UIButtonBarArrowRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE971912A712002EF274 /* UIButtonBarArrowRight.png */; }; + 0162EE9C1912A712002EF274 /* UIButtonBarArrowRight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE981912A712002EF274 /* UIButtonBarArrowRight@2x.png */; }; + 0162EEA11912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE9D1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png */; }; + 0162EEA21912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE9E1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png */; }; + 0162EEA31912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE9F1912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png */; }; + 0162EEA41912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EEA01912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png */; }; C215427C164FD1C800262EB1 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2154275164FD1C800262EB1 /* Default-568h@2x.png */; }; C215427D164FD1C800262EB1 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = C2154276164FD1C800262EB1 /* Default.png */; }; C215427E164FD1C800262EB1 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2154277164FD1C800262EB1 /* Default@2x.png */; }; @@ -21,6 +29,14 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 0162EE951912A712002EF274 /* UIButtonBarArrowLeft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowLeft.png; sourceTree = ""; }; + 0162EE961912A712002EF274 /* UIButtonBarArrowLeft@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowLeft@2x.png"; sourceTree = ""; }; + 0162EE971912A712002EF274 /* UIButtonBarArrowRight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowRight.png; sourceTree = ""; }; + 0162EE981912A712002EF274 /* UIButtonBarArrowRight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowRight@2x.png"; sourceTree = ""; }; + 0162EE9D1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowLeftLandscape.png; sourceTree = ""; }; + 0162EE9E1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowLeftLandscape@2x.png"; sourceTree = ""; }; + 0162EE9F1912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowRightLandscape.png; sourceTree = ""; }; + 0162EEA01912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowRightLandscape@2x.png"; sourceTree = ""; }; C2154275164FD1C800262EB1 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; C2154276164FD1C800262EB1 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; C2154277164FD1C800262EB1 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; @@ -54,6 +70,21 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0162EE941912A712002EF274 /* Resources */ = { + isa = PBXGroup; + children = ( + 0162EE951912A712002EF274 /* UIButtonBarArrowLeft.png */, + 0162EE961912A712002EF274 /* UIButtonBarArrowLeft@2x.png */, + 0162EE9D1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png */, + 0162EE9E1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png */, + 0162EE971912A712002EF274 /* UIButtonBarArrowRight.png */, + 0162EE981912A712002EF274 /* UIButtonBarArrowRight@2x.png */, + 0162EE9F1912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png */, + 0162EEA01912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png */, + ); + path = Resources; + sourceTree = ""; + }; C2F07133164DCA75008F4BA2 = { isa = PBXGroup; children = ( @@ -103,11 +134,13 @@ C2F07169164F0E1E008F4BA2 /* XCDFormInputAccessoryView */ = { isa = PBXGroup; children = ( + 0162EE941912A712002EF274 /* Resources */, C2F0716A164F0E32008F4BA2 /* XCDFormInputAccessoryView.h */, C2F0716B164F0E32008F4BA2 /* XCDFormInputAccessoryView.m */, ); path = XCDFormInputAccessoryView; sourceTree = ""; + usesTabs = 1; }; /* End PBXGroup section */ @@ -161,9 +194,17 @@ buildActionMask = 2147483647; files = ( C215427C164FD1C800262EB1 /* Default-568h@2x.png in Resources */, + 0162EE9C1912A712002EF274 /* UIButtonBarArrowRight@2x.png in Resources */, + 0162EE9B1912A712002EF274 /* UIButtonBarArrowRight.png in Resources */, + 0162EE9A1912A712002EF274 /* UIButtonBarArrowLeft@2x.png in Resources */, + 0162EEA31912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png in Resources */, + 0162EEA41912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png in Resources */, C215427D164FD1C800262EB1 /* Default.png in Resources */, + 0162EEA11912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png in Resources */, + 0162EE991912A712002EF274 /* UIButtonBarArrowLeft.png in Resources */, C215427E164FD1C800262EB1 /* Default@2x.png in Resources */, C2154281164FD1C800262EB1 /* MainStoryboard.storyboard in Resources */, + 0162EEA21912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -207,7 +248,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -235,7 +276,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; diff --git a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m index dada422..5356284 100644 --- a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m +++ b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m @@ -28,10 +28,15 @@ return textInputs; } +@interface XCDFormInputAccessoryView () + +@property (strong, nonatomic) UIBarButtonItem *previousBarButtonItem; +@property (strong, nonatomic) UIBarButtonItem *nextBarButtonItem; +@property (strong, nonatomic) UIToolbar *toolbar; + +@end + @implementation XCDFormInputAccessoryView -{ - UIToolbar *_toolbar; -} - (id) initWithFrame:(CGRect)frame { @@ -45,23 +50,26 @@ - (id) initWithResponders:(NSArray *)responders _responders = responders; - _toolbar = [[UIToolbar alloc] init]; - _toolbar.tintColor = nil; - _toolbar.barStyle = UIBarStyleBlack; - _toolbar.translucent = YES; - _toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth; - UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[ UIKitLocalizedString(@"Previous"), UIKitLocalizedString(@"Next") ]]; - [segmentedControl addTarget:self action:@selector(selectAdjacentResponder:) forControlEvents:UIControlEventValueChanged]; - segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; - segmentedControl.momentary = YES; - UIBarButtonItem *segmentedControlBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; + self.toolbar = [[UIToolbar alloc] init]; + self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth; + self.toolbar.tintColor = [UIColor blackColor]; + + UIBarButtonItem *previousBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"UIButtonBarArrowLeft"] landscapeImagePhone:[UIImage imageNamed:@"UIButtonBarArrowLeftLandscape"] style:UIBarButtonItemStylePlain target:self action:@selector(previous:)]; + self.previousBarButtonItem = previousBarButtonItem; + + UIBarButtonItem *nextBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"UIButtonBarArrowRight"] landscapeImagePhone:[UIImage imageNamed:@"UIButtonBarArrowRightLandscape"] style:UIBarButtonItemStylePlain target:self action:@selector(next:)]; + self.nextBarButtonItem = nextBarButtonItem; + UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; - _toolbar.items = @[ segmentedControlBarButtonItem, flexibleSpace ]; + UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; + [fixedSpace setWidth:32]; + + self.toolbar.items = @[ previousBarButtonItem, fixedSpace, nextBarButtonItem, flexibleSpace ]; self.hasDoneButton = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone; - [self addSubview:_toolbar]; + [self addSubview:self.toolbar]; - self.frame = _toolbar.frame = CGRectMake(0, 0, 0, 44); + self.frame = self.toolbar.frame = CGRectMake(0, 0, 0, 44); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextFieldTextDidBeginEditingNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextViewTextDidBeginEditingNotification object:nil]; @@ -74,17 +82,16 @@ - (void) dealloc [[NSNotificationCenter defaultCenter] removeObserver:self]; } -- (void) updateSegmentedControl +- (void) updateBarButtonItems { NSArray *responders = self.responders; if ([responders count] == 0) return; - UISegmentedControl *segmentedControl = (UISegmentedControl *)[_toolbar.items[0] customView]; BOOL isFirst = [[responders objectAtIndex:0] isFirstResponder]; BOOL isLast = [[responders lastObject] isFirstResponder]; - [segmentedControl setEnabled:!isFirst forSegmentAtIndex:0]; - [segmentedControl setEnabled:!isLast forSegmentAtIndex:1]; + [self.previousBarButtonItem setEnabled:!isFirst]; + [self.nextBarButtonItem setEnabled:!isLast]; } - (void) willMoveToWindow:(UIWindow *)window @@ -92,12 +99,12 @@ - (void) willMoveToWindow:(UIWindow *)window if (!window) return; - [self updateSegmentedControl]; + [self updateBarButtonItems]; } - (void) textInputDidBeginEditing:(NSNotification *)notification { - [self updateSegmentedControl]; + [self updateBarButtonItems]; } - (NSArray *) responders @@ -133,22 +140,22 @@ - (void) setHasDoneButton:(BOOL)hasDoneButton animated:(BOOL)animated NSArray *items; if (hasDoneButton) - items = [_toolbar.items arrayByAddingObject:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)]]; + items = [self.toolbar.items arrayByAddingObject:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)]]; else - items = [_toolbar.items subarrayWithRange:NSMakeRange(0, 2)]; + items = [self.toolbar.items subarrayWithRange:NSMakeRange(0, 2)]; - [_toolbar setItems:items animated:animated]; + [self.toolbar setItems:items animated:animated]; } #pragma mark - Actions -- (void) selectAdjacentResponder:(UISegmentedControl *)sender +- (void) selectAdjacentResponderAtIndex:(NSInteger)index { NSArray *firstResponders = [self.responders filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIResponder *responder, NSDictionary *bindings) { return [responder isFirstResponder]; }]]; UIResponder *firstResponder = [firstResponders lastObject]; - NSInteger offset = sender.selectedSegmentIndex == 0 ? -1 : +1; + NSInteger offset = index == 0 ? -1 : +1; NSInteger firstResponderIndex = [self.responders indexOfObject:firstResponder]; NSInteger adjacentResponderIndex = firstResponderIndex != NSNotFound ? firstResponderIndex + offset : NSNotFound; UIResponder *adjacentResponder = nil; @@ -157,10 +164,20 @@ - (void) selectAdjacentResponder:(UISegmentedControl *)sender // Resign the previous responder before selecting the next one, so the UIKeyboard events could be notified properly. [firstResponder resignFirstResponder]; - + [adjacentResponder becomeFirstResponder]; } +- (void) previous:(UIBarButtonItem *)sender +{ + [self selectAdjacentResponderAtIndex:0]; +} + +- (void) next:(UIBarButtonItem *)sender +{ + [self selectAdjacentResponderAtIndex:1]; +} + - (void) done { [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; From 3e29a1eac177bdbbccdaf8f0cb0077ed1b6fb5d9 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Fri, 2 May 2014 00:46:07 +0800 Subject: [PATCH 05/16] Updated screenshot. --- Screenshots/XCDFormInputAccessoryView.png | Bin 4838 -> 7356 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Screenshots/XCDFormInputAccessoryView.png b/Screenshots/XCDFormInputAccessoryView.png index 788f9ab292bb83472a8e9cf8e7ff75be22b3e436..01792e44229433e468598002e9657919ccec0f74 100644 GIT binary patch literal 7356 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 b9#DvgUE<6u^w1IiN&;jhl_bi=jQsx(Qwe%P literal 4838 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 From 9ac191f8976361c525c0426c84056eabddf81134 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Fri, 2 May 2014 00:46:28 +0800 Subject: [PATCH 06/16] The resources for the button arrows. --- .../Resources/UIButtonBarArrowLeft.png | Bin 0 -> 1360 bytes .../Resources/UIButtonBarArrowLeft@2x.png | Bin 0 -> 328 bytes .../Resources/UIButtonBarArrowLeftLandscape.png | Bin 0 -> 1299 bytes .../UIButtonBarArrowLeftLandscape@2x.png | Bin 0 -> 276 bytes .../Resources/UIButtonBarArrowRight.png | Bin 0 -> 1354 bytes .../Resources/UIButtonBarArrowRight@2x.png | Bin 0 -> 351 bytes .../Resources/UIButtonBarArrowRightLandscape.png | Bin 0 -> 1299 bytes .../UIButtonBarArrowRightLandscape@2x.png | Bin 0 -> 290 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft.png create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft@2x.png create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeftLandscape.png create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeftLandscape@2x.png create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowRight.png create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowRight@2x.png create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowRightLandscape.png create mode 100644 XCDFormInputAccessoryView/Resources/UIButtonBarArrowRightLandscape@2x.png diff --git a/XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft.png b/XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba3280a6d12710b955d4d554d5c8ccecc8b3ee4 GIT binary patch literal 1360 zcmV-W1+V&vP)4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER0002zNkl4#9zlXwM9LJ-dOVm_E^utl2^|VIw zxxI$g+-d87Xg_IfYinz{@j6-}i8vyWh=wGNuI}~WncsaMUOs$YFZp^N`F-Bb8`;TA z`c8C%&ZD?aaEA{FsrVIng#iRrSVLZ51Q8WhkVp80mZ7Ye!~{*GvsMw?JoPWa?;Q2g1u79?c@kxd+-MhSvnbJ4&fJG+)j=tb_{2z%F@X= z^9$@1pWRN5Bz6XSD9O@EyZ;sZK;G@-C}Qog=1{OZR_B16KodOut?b9L5dH^yP$&Il Sc1T(P0000k(_ z_>br}%*YZ`kmfOxX^C!}k<@VZL8e2nq^4=*m4ph8KDMI<++8cToKjfK*6eK-@X~BY zbCcwYL#+-x+TAOkB~3W!otbEG!KY2nq$qt~f4Yn!vif(PFYot&8^amX$0FZk9_fYr04L0ouUe>FVdQ&MBb@0O8XP)`000CeX+uL$Nkc;* zP;zf(X>4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER00020Nkl4Fsp$fuq6vg4OC^9WZQA~m^irute zFq(XY6^q&6b11AW8H|E&V6Yg3VHI53X584Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER0002tNkl4#8ahzv>=Nz(NrgM~@S zZYI0@0b=t{mW* z+I~s{ccE#s;G;Cc2X&i;Af*YOsM;)qDa~+0#bzN&X@xV2HVa8gTkMg6adI>c*dT6f zQz+nw1so5be{&&pP{Zk8QL+}^=tJ&8I}MT-hVW`z1ac`4j1ho#$|QG85z@8@wzZ2$lO M07*qoM6N<$g0+K&k^lez literal 0 HcmV?d00001 diff --git a/XCDFormInputAccessoryView/Resources/UIButtonBarArrowRight@2x.png b/XCDFormInputAccessoryView/Resources/UIButtonBarArrowRight@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec68e2989838c2b25c35e149da21d72913aa9be GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^;y|p$!3HEF&KLxHrS(RU5O5k|Fa@e?I8q;6zttnl)9d5b~o`H)UTZCk8SO6*A zkbol_ST7na;F|U9$OcUB;dNmEs=>sib1rwQ{GT6Z1n*8ZKC8XP)`000CeX+uL$Nkc;* zP;zf(X>4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER00020Nkl5R2p$fuK6vpw(Y);e{5JfNuR>8Vv zFd9t0g2iI7`W}L9#XK1J1cIyxTFj!B4Ws`r-^&Sp@C)aBCyYDioU3CDGZWe;mey5` za)k;D>rmYqU(7XF*-+|mW*w>9qQq2#l^x{^iFKrIk2i)ILK(5VyMDNXGUITYutShw>&POOATBq(Go~ z4FCT>j93s0WCVdsPEJseZDHQ}hw;&Whd;s{e;a0`7@XnZWMpF~no%)XM!|vi@ErmE ztQO9jZ4E(MI!F2DC~7%`ABg$HdqVBB>V|?d>_!@9ENL@jdJGqsFtol*PTcmfDidUn Mr>mdKI;Vst07o)ZhX4Qo literal 0 HcmV?d00001 From db2b3bd4d05029168b9191659594a1957fe33d00 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Fri, 2 May 2014 00:47:57 +0800 Subject: [PATCH 07/16] Use the original size for screenshot. --- Screenshots/XCDFormInputAccessoryView.png | Bin 7356 -> 5578 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Screenshots/XCDFormInputAccessoryView.png b/Screenshots/XCDFormInputAccessoryView.png index 01792e44229433e468598002e9657919ccec0f74..46e754757493afa3fbef14915a2b3d90f04077e3 100644 GIT binary patch delta 2971 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 D&Utov delta 4763 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 GLjDUdhGBaE From ae2ab8637ade7b57eb7dc0c8b5a0924245a84d10 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Fri, 2 May 2014 12:27:48 +0800 Subject: [PATCH 08/16] Added podspec. --- XCDFormInputAccessoryView7.podspec | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 XCDFormInputAccessoryView7.podspec diff --git a/XCDFormInputAccessoryView7.podspec b/XCDFormInputAccessoryView7.podspec new file mode 100644 index 0000000..8b4c807 --- /dev/null +++ b/XCDFormInputAccessoryView7.podspec @@ -0,0 +1,13 @@ +Pod::Spec.new do |s| + s.name = "XCDFormInputAccessoryView7" + s.version = "1.1.0" + s.summary = "Input accessory view with previous, next and done buttons updated to iOS 7 style." + s.homepage = "https://github.com/jessearmand/XCDFormInputAccessoryView" + s.license = { :type => 'MIT', :file => 'README.md' } + s.authors = { "Cédric Luthi" => "cedric.luthi@gmail.com", "Jesse Armand" => "jesse@jessearmand.com" } + s.source = { :git => "https://github.com/jessearmand/XCDFormInputAccessoryView.git", :tag => "1.1.0" } + s.platform = :ios, "7.0" + s.source_files = 'XCDFormInputAccessoryView' + s.resources = 'XCDFormInputAccessoryView/Resources/*.png' + s.requires_arc = true +end From 74321dfe93729e96b015b4a1871943b09085f368 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Fri, 2 May 2014 19:01:55 +0800 Subject: [PATCH 09/16] Updated README. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dee3d41..779d9ff 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ About ![screenshot](Screenshots/XCDFormInputAccessoryView.png) -`XCDFormInputAccessoryView` uses ARC (Automatic Reference Counting) and must be built with Xcode 4.5 or greater. It has been tested on iOS 4, 5 and 6. +`XCDFormInputAccessoryView` uses ARC (Automatic Reference Counting) and must be built with Xcode 4.5 or greater. Usage ===== @@ -38,4 +38,4 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From c4293d7a5a843e40aa33dfe3ad872d5e9c6ac798 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Thu, 8 May 2014 08:05:45 +0800 Subject: [PATCH 10/16] Should resignFirstResponder of first responder. Sending to UIApplication doesn't always work. --- .../XCDFormInputAccessoryView.m | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m index 5356284..0a884a5 100644 --- a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m +++ b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m @@ -124,6 +124,15 @@ - (NSArray *) responders }]; } +- (UIResponder *) firstResponder +{ + NSArray *firstResponders = [self.responders filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIResponder *responder, NSDictionary *bindings) { + return [responder isFirstResponder]; + }]]; + UIResponder *firstResponder = [firstResponders lastObject]; + return firstResponder; +} + - (void) setHasDoneButton:(BOOL)hasDoneButton { [self setHasDoneButton:hasDoneButton animated:NO]; @@ -151,10 +160,7 @@ - (void) setHasDoneButton:(BOOL)hasDoneButton animated:(BOOL)animated - (void) selectAdjacentResponderAtIndex:(NSInteger)index { - NSArray *firstResponders = [self.responders filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIResponder *responder, NSDictionary *bindings) { - return [responder isFirstResponder]; - }]]; - UIResponder *firstResponder = [firstResponders lastObject]; + UIResponder *firstResponder = [self firstResponder]; NSInteger offset = index == 0 ? -1 : +1; NSInteger firstResponderIndex = [self.responders indexOfObject:firstResponder]; NSInteger adjacentResponderIndex = firstResponderIndex != NSNotFound ? firstResponderIndex + offset : NSNotFound; @@ -180,6 +186,9 @@ - (void) next:(UIBarButtonItem *)sender - (void) done { + UIResponder *firstResponder = [self firstResponder]; + [firstResponder resignFirstResponder]; + [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; } From 88e205a1f4ee43065a3bce83e78bcb302b9de779 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Thu, 8 May 2014 08:09:16 +0800 Subject: [PATCH 11/16] Updated podspec. --- XCDFormInputAccessoryView7.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/XCDFormInputAccessoryView7.podspec b/XCDFormInputAccessoryView7.podspec index 8b4c807..491dafb 100644 --- a/XCDFormInputAccessoryView7.podspec +++ b/XCDFormInputAccessoryView7.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |s| s.name = "XCDFormInputAccessoryView7" - s.version = "1.1.0" + s.version = "1.1.1" s.summary = "Input accessory view with previous, next and done buttons updated to iOS 7 style." s.homepage = "https://github.com/jessearmand/XCDFormInputAccessoryView" s.license = { :type => 'MIT', :file => 'README.md' } s.authors = { "Cédric Luthi" => "cedric.luthi@gmail.com", "Jesse Armand" => "jesse@jessearmand.com" } - s.source = { :git => "https://github.com/jessearmand/XCDFormInputAccessoryView.git", :tag => "1.1.0" } + s.source = { :git => "https://github.com/jessearmand/XCDFormInputAccessoryView.git", :tag => "1.1.1" } s.platform = :ios, "7.0" s.source_files = 'XCDFormInputAccessoryView' s.resources = 'XCDFormInputAccessoryView/Resources/*.png' From a58de24cebd9710db7874ed4d4ab80fbc867de0a Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Mon, 16 Jun 2014 16:19:12 +0800 Subject: [PATCH 12/16] Support for black colored toolbar. Moved the resources to inside bundle. --- .../project.pbxproj | 36 ++-------------- .../DemoViewController.m | 7 +++- .../UIButtonBarArrowLeft.png | Bin .../UIButtonBarArrowLeft@2x.png | Bin .../UIButtonBarArrowLeftLandscape.png | Bin .../UIButtonBarArrowLeftLandscape@2x.png | Bin .../UIButtonBarArrowLeftLandscapeWhite.png | Bin 0 -> 1299 bytes .../UIButtonBarArrowLeftLandscapeWhite@2x.png | Bin 0 -> 2845 bytes .../UIButtonBarArrowLeftWhite.png | Bin 0 -> 1353 bytes .../UIButtonBarArrowLeftWhite@2x.png | Bin 0 -> 3142 bytes .../UIButtonBarArrowRight.png | Bin .../UIButtonBarArrowRight@2x.png | Bin .../UIButtonBarArrowRightLandscape.png | Bin .../UIButtonBarArrowRightLandscape@2x.png | Bin .../UIButtonBarArrowRightLandscapeWhite.png | Bin 0 -> 1295 bytes ...UIButtonBarArrowRightLandscapeWhite@2x.png | Bin 0 -> 2835 bytes .../UIButtonBarArrowRightWhite.png | Bin 0 -> 1349 bytes .../UIButtonBarArrowRightWhite@2x.png | Bin 0 -> 3155 bytes .../XCDFormInputAccessoryView.h | 14 ++++++- .../XCDFormInputAccessoryView.m | 39 +++++++++++++----- 20 files changed, 51 insertions(+), 45 deletions(-) rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowLeft.png (100%) rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowLeft@2x.png (100%) rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowLeftLandscape.png (100%) rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowLeftLandscape@2x.png (100%) create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite.png create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite@2x.png create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftWhite.png create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftWhite@2x.png rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowRight.png (100%) rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowRight@2x.png (100%) rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowRightLandscape.png (100%) rename XCDFormInputAccessoryView/Resources/{ => XCDButtonBarArrow.bundle}/UIButtonBarArrowRightLandscape@2x.png (100%) create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscapeWhite.png create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscapeWhite@2x.png create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightWhite.png create mode 100644 XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightWhite@2x.png diff --git a/Form Input Accessory View Demo.xcodeproj/project.pbxproj b/Form Input Accessory View Demo.xcodeproj/project.pbxproj index 8adbd0a..858af2f 100644 --- a/Form Input Accessory View Demo.xcodeproj/project.pbxproj +++ b/Form Input Accessory View Demo.xcodeproj/project.pbxproj @@ -7,14 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 0162EE991912A712002EF274 /* UIButtonBarArrowLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE951912A712002EF274 /* UIButtonBarArrowLeft.png */; }; - 0162EE9A1912A712002EF274 /* UIButtonBarArrowLeft@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE961912A712002EF274 /* UIButtonBarArrowLeft@2x.png */; }; - 0162EE9B1912A712002EF274 /* UIButtonBarArrowRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE971912A712002EF274 /* UIButtonBarArrowRight.png */; }; - 0162EE9C1912A712002EF274 /* UIButtonBarArrowRight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE981912A712002EF274 /* UIButtonBarArrowRight@2x.png */; }; - 0162EEA11912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE9D1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png */; }; - 0162EEA21912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE9E1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png */; }; - 0162EEA31912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EE9F1912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png */; }; - 0162EEA41912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0162EEA01912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png */; }; + 0117847C194EDF19007CA22F /* XCDButtonBarArrow.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 0117847B194EDF19007CA22F /* XCDButtonBarArrow.bundle */; }; C215427C164FD1C800262EB1 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2154275164FD1C800262EB1 /* Default-568h@2x.png */; }; C215427D164FD1C800262EB1 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = C2154276164FD1C800262EB1 /* Default.png */; }; C215427E164FD1C800262EB1 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C2154277164FD1C800262EB1 /* Default@2x.png */; }; @@ -29,14 +22,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 0162EE951912A712002EF274 /* UIButtonBarArrowLeft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowLeft.png; sourceTree = ""; }; - 0162EE961912A712002EF274 /* UIButtonBarArrowLeft@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowLeft@2x.png"; sourceTree = ""; }; - 0162EE971912A712002EF274 /* UIButtonBarArrowRight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowRight.png; sourceTree = ""; }; - 0162EE981912A712002EF274 /* UIButtonBarArrowRight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowRight@2x.png"; sourceTree = ""; }; - 0162EE9D1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowLeftLandscape.png; sourceTree = ""; }; - 0162EE9E1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowLeftLandscape@2x.png"; sourceTree = ""; }; - 0162EE9F1912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UIButtonBarArrowRightLandscape.png; sourceTree = ""; }; - 0162EEA01912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "UIButtonBarArrowRightLandscape@2x.png"; sourceTree = ""; }; + 0117847B194EDF19007CA22F /* XCDButtonBarArrow.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = XCDButtonBarArrow.bundle; sourceTree = ""; }; C2154275164FD1C800262EB1 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; C2154276164FD1C800262EB1 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; C2154277164FD1C800262EB1 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; @@ -73,14 +59,7 @@ 0162EE941912A712002EF274 /* Resources */ = { isa = PBXGroup; children = ( - 0162EE951912A712002EF274 /* UIButtonBarArrowLeft.png */, - 0162EE961912A712002EF274 /* UIButtonBarArrowLeft@2x.png */, - 0162EE9D1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png */, - 0162EE9E1912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png */, - 0162EE971912A712002EF274 /* UIButtonBarArrowRight.png */, - 0162EE981912A712002EF274 /* UIButtonBarArrowRight@2x.png */, - 0162EE9F1912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png */, - 0162EEA01912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png */, + 0117847B194EDF19007CA22F /* XCDButtonBarArrow.bundle */, ); path = Resources; sourceTree = ""; @@ -194,17 +173,10 @@ buildActionMask = 2147483647; files = ( C215427C164FD1C800262EB1 /* Default-568h@2x.png in Resources */, - 0162EE9C1912A712002EF274 /* UIButtonBarArrowRight@2x.png in Resources */, - 0162EE9B1912A712002EF274 /* UIButtonBarArrowRight.png in Resources */, - 0162EE9A1912A712002EF274 /* UIButtonBarArrowLeft@2x.png in Resources */, - 0162EEA31912A7B7002EF274 /* UIButtonBarArrowRightLandscape.png in Resources */, - 0162EEA41912A7B7002EF274 /* UIButtonBarArrowRightLandscape@2x.png in Resources */, C215427D164FD1C800262EB1 /* Default.png in Resources */, - 0162EEA11912A7B7002EF274 /* UIButtonBarArrowLeftLandscape.png in Resources */, - 0162EE991912A712002EF274 /* UIButtonBarArrowLeft.png in Resources */, C215427E164FD1C800262EB1 /* Default@2x.png in Resources */, C2154281164FD1C800262EB1 /* MainStoryboard.storyboard in Resources */, - 0162EEA21912A7B7002EF274 /* UIButtonBarArrowLeftLandscape@2x.png in Resources */, + 0117847C194EDF19007CA22F /* XCDButtonBarArrow.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Form Input Accessory View Demo/DemoViewController.m b/Form Input Accessory View Demo/DemoViewController.m index 2ec0b18..82c85b3 100644 --- a/Form Input Accessory View Demo/DemoViewController.m +++ b/Form Input Accessory View Demo/DemoViewController.m @@ -64,7 +64,12 @@ - (UIView *) inputAccessoryView { if (!_inputAccessoryView) { - _inputAccessoryView = [[XCDFormInputAccessoryView alloc] initWithResponders:self.textInputs]; + // To use black colored toolbar + // [[UIToolbar appearance] setBarTintColor:[UIColor blackColor]]; + //_inputAccessoryView = [[XCDFormInputAccessoryView alloc] initWithResponders:self.textInputs tintColor:[UIColor whiteColor]]; + + _inputAccessoryView = [[XCDFormInputAccessoryView alloc] initWithResponders:self.textInputs]; + //_inputAccessoryView = [[XCDFormInputAccessoryView alloc] init]; //_inputAccessoryView = [[NSClassFromString(@"UIWebFormAccessory") alloc] init]; } diff --git a/XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeft.png similarity index 100% rename from XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft.png rename to XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeft.png diff --git a/XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft@2x.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeft@2x.png similarity index 100% rename from XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeft@2x.png rename to XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeft@2x.png diff --git a/XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeftLandscape.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscape.png similarity index 100% rename from XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeftLandscape.png rename to XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscape.png diff --git a/XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeftLandscape@2x.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscape@2x.png similarity index 100% rename from XCDFormInputAccessoryView/Resources/UIButtonBarArrowLeftLandscape@2x.png rename to XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscape@2x.png diff --git a/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite.png new file mode 100644 index 0000000000000000000000000000000000000000..4436a14f3da441d9b52e8b96af44d0cdc833bc08 GIT binary patch literal 1299 zcmV+u1?>8XP)4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER00020Nkl4Ftp$fuK7>41Uwatme3lPLKu!%Qd zG6=>c@4#SLwRj=gEP_$I2&-YRFiZx;vCVe&o_u!x!NcJH-lch-@Mx`P2%QPz25-ze zBZdSuw(zZp;~IbLtkE18R%npAf+b^xy(?HSesFLFG2<7<&cGZQ2RI?eR0;!vGhT?L zFeJF3z(fjr1XpAjOJPKC!xJMZ>=WGaFrocl_*5xX@=EZ-um$9=s9+H2BP9R;002ov JPDHLkV1mFKZH)i` literal 0 HcmV?d00001 diff --git a/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite@2x.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..50d31af24bdd3680e2ff37d48638df222e67df09 GIT binary patch literal 2845 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 LNkvXXu0mjf$?=6_ literal 0 HcmV?d00001 diff --git a/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftWhite@2x.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowLeftWhite@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fd82634bac63754455c3f39a0cdda80bb2b05dae GIT binary patch literal 3142 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 FV1gs9YqS6W literal 0 HcmV?d00001 diff --git a/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscapeWhite@2x.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscapeWhite@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cf86842cce9d501c9caac5372f501ce033bb4fb2 GIT binary patch literal 2835 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 Hu0mjfyPS!i literal 0 HcmV?d00001 diff --git a/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightWhite@2x.png b/XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle/UIButtonBarArrowRightWhite@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..600513e805506e900182d37c9e60755ad941080c GIT binary patch literal 3155 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 Date: Mon, 16 Jun 2014 16:27:34 +0800 Subject: [PATCH 13/16] Updated podspec to 1.1.2. --- XCDFormInputAccessoryView7.podspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/XCDFormInputAccessoryView7.podspec b/XCDFormInputAccessoryView7.podspec index 491dafb..afe3012 100644 --- a/XCDFormInputAccessoryView7.podspec +++ b/XCDFormInputAccessoryView7.podspec @@ -1,13 +1,13 @@ Pod::Spec.new do |s| s.name = "XCDFormInputAccessoryView7" - s.version = "1.1.1" + s.version = "1.1.2" s.summary = "Input accessory view with previous, next and done buttons updated to iOS 7 style." s.homepage = "https://github.com/jessearmand/XCDFormInputAccessoryView" s.license = { :type => 'MIT', :file => 'README.md' } s.authors = { "Cédric Luthi" => "cedric.luthi@gmail.com", "Jesse Armand" => "jesse@jessearmand.com" } - s.source = { :git => "https://github.com/jessearmand/XCDFormInputAccessoryView.git", :tag => "1.1.1" } + s.source = { :git => "https://github.com/jessearmand/XCDFormInputAccessoryView.git", :tag => "1.1.2" } s.platform = :ios, "7.0" s.source_files = 'XCDFormInputAccessoryView' - s.resources = 'XCDFormInputAccessoryView/Resources/*.png' + s.resource = 'XCDFormInputAccessoryView/Resources/XCDButtonBarArrow.bundle' s.requires_arc = true end From ef71274f31c17ead730ded8aba6061a7e8654462 Mon Sep 17 00:00:00 2001 From: hanton Date: Mon, 29 Dec 2014 12:13:53 +0800 Subject: [PATCH 14/16] Delete unused method `UIKitLocalizedString()` --- XCDFormInputAccessoryView/XCDFormInputAccessoryView.m | 6 ------ 1 file changed, 6 deletions(-) diff --git a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m index deb715e..a30078f 100644 --- a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m +++ b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m @@ -7,12 +7,6 @@ #import "XCDFormInputAccessoryView.h" -static NSString * UIKitLocalizedString(NSString *string) -{ - NSBundle *UIKitBundle = [NSBundle bundleForClass:[UIApplication class]]; - return UIKitBundle ? [UIKitBundle localizedStringForKey:string value:string table:nil] : string; -} - static NSArray * EditableTextInputsInView(UIView *view) { NSMutableArray *textInputs = [NSMutableArray new]; From 88506687b96acc56487e04189fc7f2cf7881e593 Mon Sep 17 00:00:00 2001 From: Jesse Armand Date: Mon, 29 Dec 2014 23:33:18 +0800 Subject: [PATCH 15/16] Fixed indentation to 4 spaces. --- .../XCDFormInputAccessoryView.m | 224 +++++++++--------- 1 file changed, 116 insertions(+), 108 deletions(-) diff --git a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m index a30078f..ffd4c8e 100644 --- a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m +++ b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m @@ -9,17 +9,17 @@ static NSArray * EditableTextInputsInView(UIView *view) { - NSMutableArray *textInputs = [NSMutableArray new]; - for (UIView *subview in view.subviews) - { - BOOL isTextField = [subview isKindOfClass:[UITextField class]]; - BOOL isEditableTextView = [subview isKindOfClass:[UITextView class]] && [(UITextView *)subview isEditable]; - if (isTextField || isEditableTextView) - [textInputs addObject:subview]; - else - [textInputs addObjectsFromArray:EditableTextInputsInView(subview)]; - } - return textInputs; + NSMutableArray *textInputs = [NSMutableArray new]; + for (UIView *subview in view.subviews) + { + BOOL isTextField = [subview isKindOfClass:[UITextField class]]; + BOOL isEditableTextView = [subview isKindOfClass:[UITextView class]] && [(UITextView *)subview isEditable]; + if (isTextField || isEditableTextView) + [textInputs addObject:subview]; + else + [textInputs addObjectsFromArray:EditableTextInputsInView(subview)]; + } + return textInputs; } @interface XCDFormInputAccessoryView () @@ -34,7 +34,7 @@ @implementation XCDFormInputAccessoryView - (instancetype) initWithFrame:(CGRect)frame { - return [self initWithResponders:nil]; + return [self initWithResponders:nil]; } - (id)initWithResponders:(NSArray *)responders @@ -44,20 +44,20 @@ - (id)initWithResponders:(NSArray *)responders - (instancetype) initWithResponders:(NSArray *)responders tintColor:(UIColor *)tintColor { - if (!(self = [super initWithFrame:CGRectZero])) - return nil; - - _responders = responders; - - self.toolbar = [[UIToolbar alloc] init]; - self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth; - self.toolbar.tintColor = tintColor; - + if (!(self = [super initWithFrame:CGRectZero])) + return nil; + + _responders = responders; + + self.toolbar = [[UIToolbar alloc] init]; + self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth; + self.toolbar.tintColor = tintColor; + UIImage *previousImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeft"]; UIImage *previousLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscape"]; UIImage *nextImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRight"]; UIImage *nextLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscape"]; - + CGFloat whiteColorValue = 0.f; [tintColor getWhite:&whiteColorValue alpha:NULL]; if (whiteColorValue == 1.0) { @@ -66,143 +66,151 @@ - (instancetype) initWithResponders:(NSArray *)responders tintColor:(UIColor *)t nextImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightWhite"]; nextLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscapeWhite"]; } - - UIBarButtonItem *previousBarButtonItem = [[UIBarButtonItem alloc] initWithImage:previousImage landscapeImagePhone:previousLandscapeImage style:UIBarButtonItemStylePlain target:self action:@selector(previous:)]; - self.previousBarButtonItem = previousBarButtonItem; - - UIBarButtonItem *nextBarButtonItem = [[UIBarButtonItem alloc] initWithImage:nextImage landscapeImagePhone:nextLandscapeImage style:UIBarButtonItemStylePlain target:self action:@selector(next:)]; - self.nextBarButtonItem = nextBarButtonItem; - - UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; - UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; - [fixedSpace setWidth:32]; - - self.toolbar.items = @[ self.previousBarButtonItem, fixedSpace, self.nextBarButtonItem, flexibleSpace ]; - [self addSubview:self.toolbar]; - - self.hasDoneButton = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone; - - self.frame = self.toolbar.frame = CGRectMake(0, 0, 0, 44); - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextFieldTextDidBeginEditingNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextViewTextDidBeginEditingNotification object:nil]; - - return self; + + UIBarButtonItem *previousBarButtonItem = [[UIBarButtonItem alloc] initWithImage:previousImage + landscapeImagePhone:previousLandscapeImage + style:UIBarButtonItemStylePlain + target:self + action:@selector(previous:)]; + self.previousBarButtonItem = previousBarButtonItem; + + UIBarButtonItem *nextBarButtonItem = [[UIBarButtonItem alloc] initWithImage:nextImage + landscapeImagePhone:nextLandscapeImage + style:UIBarButtonItemStylePlain + target:self + action:@selector(next:)]; + self.nextBarButtonItem = nextBarButtonItem; + + UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; + UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; + [fixedSpace setWidth:32]; + + self.toolbar.items = @[ self.previousBarButtonItem, fixedSpace, self.nextBarButtonItem, flexibleSpace ]; + [self addSubview:self.toolbar]; + + self.hasDoneButton = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone; + + self.frame = self.toolbar.frame = CGRectMake(0, 0, 0, 44); + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextFieldTextDidBeginEditingNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textInputDidBeginEditing:) name:UITextViewTextDidBeginEditingNotification object:nil]; + + return self; } - (void) dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void) updateBarButtonItems { - NSArray *responders = self.responders; - if ([responders count] == 0) - return; - - BOOL isFirst = [[responders objectAtIndex:0] isFirstResponder]; - BOOL isLast = [[responders lastObject] isFirstResponder]; - [self.previousBarButtonItem setEnabled:!isFirst]; - [self.nextBarButtonItem setEnabled:!isLast]; + NSArray *responders = self.responders; + if ([responders count] == 0) + return; + + BOOL isFirst = [[responders objectAtIndex:0] isFirstResponder]; + BOOL isLast = [[responders lastObject] isFirstResponder]; + [self.previousBarButtonItem setEnabled:!isFirst]; + [self.nextBarButtonItem setEnabled:!isLast]; } - (void) willMoveToWindow:(UIWindow *)window { - if (!window) - return; - - [self updateBarButtonItems]; + if (!window) + return; + + [self updateBarButtonItems]; } - (void) textInputDidBeginEditing:(NSNotification *)notification { - [self updateBarButtonItems]; + [self updateBarButtonItems]; } - (NSArray *) responders { - if (_responders) - return _responders; - - NSArray *textInputs = EditableTextInputsInView([[UIApplication sharedApplication] keyWindow]); - return [textInputs sortedArrayUsingComparator:^NSComparisonResult(UIView *textInput1, UIView *textInput2) { - UIView *commonAncestorView = textInput1.superview; - while (commonAncestorView && ![textInput2 isDescendantOfView:commonAncestorView]) - commonAncestorView = commonAncestorView.superview; - - CGRect frame1 = [textInput1 convertRect:textInput1.bounds toView:commonAncestorView]; - CGRect frame2 = [textInput2 convertRect:textInput2.bounds toView:commonAncestorView]; - return [@(CGRectGetMinY(frame1)) compare:@(CGRectGetMinY(frame2))]; - }]; + if (_responders) + return _responders; + + NSArray *textInputs = EditableTextInputsInView([[UIApplication sharedApplication] keyWindow]); + return [textInputs sortedArrayUsingComparator:^NSComparisonResult(UIView *textInput1, UIView *textInput2) { + UIView *commonAncestorView = textInput1.superview; + while (commonAncestorView && ![textInput2 isDescendantOfView:commonAncestorView]) + commonAncestorView = commonAncestorView.superview; + + CGRect frame1 = [textInput1 convertRect:textInput1.bounds toView:commonAncestorView]; + CGRect frame2 = [textInput2 convertRect:textInput2.bounds toView:commonAncestorView]; + return [@(CGRectGetMinY(frame1)) compare:@(CGRectGetMinY(frame2))]; + }]; } - (UIResponder *) firstResponder { - NSArray *firstResponders = [self.responders filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIResponder *responder, NSDictionary *bindings) { - return [responder isFirstResponder]; - }]]; - UIResponder *firstResponder = [firstResponders lastObject]; - return firstResponder; + NSArray *firstResponders = [self.responders filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIResponder *responder, NSDictionary *bindings) { + return [responder isFirstResponder]; + }]]; + UIResponder *firstResponder = [firstResponders lastObject]; + return firstResponder; } - (void) setHasDoneButton:(BOOL)hasDoneButton { - [self setHasDoneButton:hasDoneButton animated:NO]; + [self setHasDoneButton:hasDoneButton animated:NO]; } - (void) setHasDoneButton:(BOOL)hasDoneButton animated:(BOOL)animated { - if (_hasDoneButton == hasDoneButton) - return; - - [self willChangeValueForKey:@"hasDoneButton"]; - _hasDoneButton = hasDoneButton; - [self didChangeValueForKey:@"hasDoneButton"]; - - NSArray *items; - if (hasDoneButton) - items = [self.toolbar.items arrayByAddingObject:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)]]; - else - items = [self.toolbar.items subarrayWithRange:NSMakeRange(0, 2)]; - - [self.toolbar setItems:items animated:animated]; + if (_hasDoneButton == hasDoneButton) + return; + + [self willChangeValueForKey:@"hasDoneButton"]; + _hasDoneButton = hasDoneButton; + [self didChangeValueForKey:@"hasDoneButton"]; + + NSArray *items; + if (hasDoneButton) + items = [self.toolbar.items arrayByAddingObject:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)]]; + else + items = [self.toolbar.items subarrayWithRange:NSMakeRange(0, 2)]; + + [self.toolbar setItems:items animated:animated]; } #pragma mark - Actions - (void) selectAdjacentResponderAtIndex:(NSInteger)index { - UIResponder *firstResponder = [self firstResponder]; - NSInteger offset = index == 0 ? -1 : +1; - NSInteger firstResponderIndex = [self.responders indexOfObject:firstResponder]; - NSInteger adjacentResponderIndex = firstResponderIndex != NSNotFound ? firstResponderIndex + offset : NSNotFound; - UIResponder *adjacentResponder = nil; - if (adjacentResponderIndex >= 0 && adjacentResponderIndex < (NSInteger)[self.responders count]) - adjacentResponder = [self.responders objectAtIndex:adjacentResponderIndex]; - - // Resign the previous responder before selecting the next one, so the UIKeyboard events could be notified properly. - [firstResponder resignFirstResponder]; - - [adjacentResponder becomeFirstResponder]; + UIResponder *firstResponder = [self firstResponder]; + NSInteger offset = index == 0 ? -1 : +1; + NSInteger firstResponderIndex = [self.responders indexOfObject:firstResponder]; + NSInteger adjacentResponderIndex = firstResponderIndex != NSNotFound ? firstResponderIndex + offset : NSNotFound; + UIResponder *adjacentResponder = nil; + if (adjacentResponderIndex >= 0 && adjacentResponderIndex < (NSInteger)[self.responders count]) + adjacentResponder = [self.responders objectAtIndex:adjacentResponderIndex]; + + // Resign the previous responder before selecting the next one, so the UIKeyboard events could be notified properly. + [firstResponder resignFirstResponder]; + + [adjacentResponder becomeFirstResponder]; } - (void) previous:(UIBarButtonItem *)sender { - [self selectAdjacentResponderAtIndex:0]; + [self selectAdjacentResponderAtIndex:0]; } - (void) next:(UIBarButtonItem *)sender { - [self selectAdjacentResponderAtIndex:1]; + [self selectAdjacentResponderAtIndex:1]; } - (void) done { - UIResponder *firstResponder = [self firstResponder]; - [firstResponder resignFirstResponder]; + UIResponder *firstResponder = [self firstResponder]; + [firstResponder resignFirstResponder]; - [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; + [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; } @end From 458b5f3791fae531e9fc99966ca0fcbf932fa5b5 Mon Sep 17 00:00:00 2001 From: orkenstein Date: Thu, 17 Sep 2015 15:28:33 +0300 Subject: [PATCH 16/16] Swift bundle support --- .../XCDFormInputAccessoryView.m | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m index ffd4c8e..fd63a56 100644 --- a/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m +++ b/XCDFormInputAccessoryView/XCDFormInputAccessoryView.m @@ -53,18 +53,18 @@ - (instancetype) initWithResponders:(NSArray *)responders tintColor:(UIColor *)t self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth; self.toolbar.tintColor = tintColor; - UIImage *previousImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeft"]; - UIImage *previousLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscape"]; - UIImage *nextImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRight"]; - UIImage *nextLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscape"]; - + UIImage *previousImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeft" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; + UIImage *previousLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscape" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; + UIImage *nextImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRight" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; + UIImage *nextLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscape" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; + CGFloat whiteColorValue = 0.f; [tintColor getWhite:&whiteColorValue alpha:NULL]; if (whiteColorValue == 1.0) { - previousImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeftWhite"]; - previousLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite"]; - nextImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightWhite"]; - nextLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscapeWhite"]; + previousImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeftWhite" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; + previousLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowLeftLandscapeWhite" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; + nextImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightWhite" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; + nextLandscapeImage = [UIImage imageNamed:@"XCDButtonBarArrow.bundle/UIButtonBarArrowRightLandscapeWhite" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil]; } UIBarButtonItem *previousBarButtonItem = [[UIBarButtonItem alloc] initWithImage:previousImage