diff --git a/iOS/MonsterCards.xcodeproj/project.pbxproj b/iOS/MonsterCards.xcodeproj/project.pbxproj index 4e127b7..eccb2de 100644 --- a/iOS/MonsterCards.xcodeproj/project.pbxproj +++ b/iOS/MonsterCards.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ E25BD60425036CF0007B04EF /* Ability.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD60325036CF0007B04EF /* Ability.m */; }; E25BD60725036CFA007B04EF /* Action.m in Sources */ = {isa = PBXBuildFile; fileRef = E25BD60625036CFA007B04EF /* Action.m */; }; E2D3E3B0250827110052A8EC /* EditMonsterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E2D3E3AF250827110052A8EC /* EditMonsterViewController.m */; }; + E2D3E3B42508C3360052A8EC /* EditableShortStringTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E2D3E3B32508C3360052A8EC /* EditableShortStringTableViewCell.m */; }; E2ECA8F32504AC3300C1FFA5 /* SkillTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2ECA8F22504AC3300C1FFA5 /* SkillTests.m */; }; E2ECA8F52504BAAD00C1FFA5 /* MonsterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2ECA8F42504BAAD00C1FFA5 /* MonsterTests.m */; }; E2F7247525005E89007D87ED /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F7247425005E89007D87ED /* AppDelegate.m */; }; @@ -79,6 +80,7 @@ E20D033025031BFD00FB6E43 /* DashboardViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DashboardViewController.m; sourceTree = ""; }; E2532E8725038DE100CA4CBA /* StringHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StringHelper.h; sourceTree = ""; }; E2532E8825038DE100CA4CBA /* StringHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StringHelper.m; sourceTree = ""; }; + E2591EB62509DD4900B396FD /* EditableFormFieldDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EditableFormFieldDelegate.h; sourceTree = ""; }; E25BD5F3250352C4007B04EF /* Monster.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Monster.h; sourceTree = ""; }; E25BD5F4250352C4007B04EF /* Monster.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Monster.m; sourceTree = ""; }; E25BD5F6250368A8007B04EF /* SavingThrow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SavingThrow.h; sourceTree = ""; }; @@ -96,6 +98,8 @@ E265EE24B2C8E81E1B559306 /* Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig"; path = "Target Support Files/Pods-MonsterCards-MonsterCardsUITests/Pods-MonsterCards-MonsterCardsUITests.debug.xcconfig"; sourceTree = ""; }; E2D3E3AE250827110052A8EC /* EditMonsterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EditMonsterViewController.h; sourceTree = ""; }; E2D3E3AF250827110052A8EC /* EditMonsterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EditMonsterViewController.m; sourceTree = ""; }; + E2D3E3B22508C3360052A8EC /* EditableShortStringTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EditableShortStringTableViewCell.h; sourceTree = ""; }; + E2D3E3B32508C3360052A8EC /* EditableShortStringTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EditableShortStringTableViewCell.m; sourceTree = ""; }; E2ECA8F22504AC3300C1FFA5 /* SkillTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SkillTests.m; sourceTree = ""; }; E2ECA8F42504BAAD00C1FFA5 /* MonsterTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MonsterTests.m; sourceTree = ""; }; E2F7247025005E89007D87ED /* Monster Cards.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Monster Cards.app"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -177,6 +181,7 @@ E20D032525031BA700FB6E43 /* Views */ = { isa = PBXGroup; children = ( + E2D3E3B12508C2FE0052A8EC /* FormFields */, E20D032C25031BEF00FB6E43 /* CollectionsViewController.h */, E20D032D25031BEF00FB6E43 /* CollectionsViewController.m */, E20D032F25031BFD00FB6E43 /* DashboardViewController.h */, @@ -223,6 +228,16 @@ path = Helpers; sourceTree = ""; }; + E2D3E3B12508C2FE0052A8EC /* FormFields */ = { + isa = PBXGroup; + children = ( + E2D3E3B22508C3360052A8EC /* EditableShortStringTableViewCell.h */, + E2D3E3B32508C3360052A8EC /* EditableShortStringTableViewCell.m */, + E2591EB62509DD4900B396FD /* EditableFormFieldDelegate.h */, + ); + path = FormFields; + sourceTree = ""; + }; E2F7246725005E89007D87ED = { isa = PBXGroup; children = ( @@ -541,6 +556,7 @@ E25BD60725036CFA007B04EF /* Action.m in Sources */, E2D3E3B0250827110052A8EC /* EditMonsterViewController.m in Sources */, E2F7247525005E89007D87ED /* AppDelegate.m in Sources */, + E2D3E3B42508C3360052A8EC /* EditableShortStringTableViewCell.m in Sources */, E20D032B25031BE500FB6E43 /* LibraryViewController.m in Sources */, E20D033125031BFD00FB6E43 /* DashboardViewController.m in Sources */, E25BD5FE25036A76007B04EF /* DamageType.m in Sources */, diff --git a/iOS/MonsterCards/Views/EditMonsterViewController.h b/iOS/MonsterCards/Views/EditMonsterViewController.h index 6128f78..cd799f9 100644 --- a/iOS/MonsterCards/Views/EditMonsterViewController.h +++ b/iOS/MonsterCards/Views/EditMonsterViewController.h @@ -8,10 +8,11 @@ #import #import "Monster.h" +#import "EditableShortStringTableViewCell.h" NS_ASSUME_NONNULL_BEGIN -@interface EditMonsterViewController : UIViewController +@interface EditMonsterViewController : UIViewController @property Monster* originalMonster; @property (weak, nonatomic) IBOutlet UITableView *monsterTableView; diff --git a/iOS/MonsterCards/Views/EditMonsterViewController.m b/iOS/MonsterCards/Views/EditMonsterViewController.m index f441e75..8947305 100644 --- a/iOS/MonsterCards/Views/EditMonsterViewController.m +++ b/iOS/MonsterCards/Views/EditMonsterViewController.m @@ -7,6 +7,7 @@ // #import "EditMonsterViewController.h" +#import "EditableShortStringTableViewCell.h" @interface EditMonsterViewController () diff --git a/iOS/MonsterCards/Views/FormFields/EditableFormFieldDelegate.h b/iOS/MonsterCards/Views/FormFields/EditableFormFieldDelegate.h new file mode 100644 index 0000000..877a3a1 --- /dev/null +++ b/iOS/MonsterCards/Views/FormFields/EditableFormFieldDelegate.h @@ -0,0 +1,20 @@ +// +// EditableFormFieldDelegate.h +// MonsterCards +// +// Created by Tom Hicks on 9/9/20. +// Copyright © 2020 Tom Hicks. All rights reserved. +// + +#ifndef EditableFormFieldDelegate_h +#define EditableFormFieldDelegate_h + +@protocol EditableFormFieldDelegate + +@optional +-(void)editableValueDidChange:(NSObject*)value forIdentifier:(NSString*)identifier andType:(NSString*)type; + +@end + + +#endif /* EditableFormFieldDelegate_h */ diff --git a/iOS/MonsterCards/Views/FormFields/EditableShortStringTableViewCell.h b/iOS/MonsterCards/Views/FormFields/EditableShortStringTableViewCell.h new file mode 100644 index 0000000..a607709 --- /dev/null +++ b/iOS/MonsterCards/Views/FormFields/EditableShortStringTableViewCell.h @@ -0,0 +1,30 @@ +// +// EditableShortStringTableViewCell.h +// MonsterCards +// +// Created by Tom Hicks on 9/9/20. +// Copyright © 2020 Tom Hicks. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol EditableShortStringDelegate + +@optional +-(void)editableValueDidChange:(NSString*)value forIdentifier:(NSString*)identifier andType:(NSString*)type; + +@end + +@interface EditableShortStringTableViewCell : UITableViewCell + +@property NSString* identifier; +@property NSString* label; +@property NSString* value; +@property (nonatomic, weak) id delegate; +@property (weak, nonatomic) IBOutlet UITextField *textField; + +@end + +NS_ASSUME_NONNULL_END diff --git a/iOS/MonsterCards/Views/FormFields/EditableShortStringTableViewCell.m b/iOS/MonsterCards/Views/FormFields/EditableShortStringTableViewCell.m new file mode 100644 index 0000000..df30060 --- /dev/null +++ b/iOS/MonsterCards/Views/FormFields/EditableShortStringTableViewCell.m @@ -0,0 +1,32 @@ +// +// EditableShortStringTableViewCell.m +// MonsterCards +// +// Created by Tom Hicks on 9/9/20. +// Copyright © 2020 Tom Hicks. All rights reserved. +// + +#import "EditableShortStringTableViewCell.h" + +@implementation EditableShortStringTableViewCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code + self.textField.delegate = self; +} + +#pragma mark - UITextFieldDelegate + +- (BOOL)textField:(UITextField *)textField +shouldChangeCharactersInRange:(NSRange)range +replacementString:(NSString *)string { + // TODO: See this link for a potentially better way to get this text https://stackoverflow.com/questions/19110617/uitextfieldtextdidchangenotification-ios7-not-fired + NSString *finalString = [textField.text stringByReplacingCharactersInRange:range withString:string]; + if (self.delegate != nil) { + [self.delegate editableValueDidChange:finalString forIdentifier:self.identifier andType:@"String"]; + } + return YES; +} + +@end