@@ -151,6 +151,10 @@ - (BOOL)textFieldShouldReturn:(UITextField *)textField
151
151
- (BOOL )textField : (UITextField *)textField shouldChangeCharactersInRange : (NSRange )range
152
152
replacementString : (NSString *)string
153
153
{
154
+ if ([string isEqualToString: @" " ] && ![textField isEqual: _passwordField]) { // Disallow spaces in every field except password
155
+ return NO ;
156
+ }
157
+
154
158
NSArray *fields = @[_emailField, _usernameField, _passwordField, _siteAddressField];
155
159
156
160
NSMutableString *updatedString = [[NSMutableString alloc ] initWithString: textField.text];
@@ -696,7 +700,7 @@ - (BOOL)isSiteAddressFilled
696
700
697
701
- (BOOL )fieldsValid
698
702
{
699
- return [self fieldsFilled ] && [self isUsernameUnderFiftyCharacters ];
703
+ return [self fieldsFilled ] && [self isUsernameUnderFiftyCharacters ] && ![ self emailOrUsernameOrSiteAddressContainsSpaces ] ;
700
704
}
701
705
702
706
- (NSString *)generateSiteTitleFromUsername : (NSString *)username
@@ -711,11 +715,22 @@ - (void)showAllErrors
711
715
{
712
716
if (![self isUsernameUnderFiftyCharacters ]) {
713
717
[self showError: NSLocalizedString(@" Username must be less than fifty characters." , nil )];
718
+ } else if ([self emailOrUsernameOrSiteAddressContainsSpaces ]) {
719
+ [self showError: NSLocalizedString(@" Email, Username, and Site Address cannot contain spaces" , @" No spaces error message" )];
714
720
} else {
715
721
[self showFieldsNotFilledError ];
716
722
}
717
723
}
718
724
725
+ - (BOOL )emailOrUsernameOrSiteAddressContainsSpaces {
726
+ NSString *space = @" " ;
727
+ NSString *emailTrimmed = [_emailField.text trim ];
728
+ NSString *userNameTrimmed = [_usernameField.text trim ];
729
+ NSString *siteAddressTrimmed = [_siteAddressField.text trim ];
730
+
731
+ return ([emailTrimmed containsString: space] || [userNameTrimmed containsString: space] || [siteAddressTrimmed containsString: space]);
732
+ }
733
+
719
734
- (void )showFieldsNotFilledError
720
735
{
721
736
[self showError: NSLocalizedString(@" Please fill out all the fields" , nil )];
0 commit comments