Adds string form field cell for use in table views to edit a string property.
This commit is contained in:
		| @@ -8,10 +8,11 @@ | ||||
|  | ||||
| #import <UIKit/UIKit.h> | ||||
| #import "Monster.h" | ||||
| #import "EditableShortStringTableViewCell.h" | ||||
|  | ||||
| NS_ASSUME_NONNULL_BEGIN | ||||
|  | ||||
| @interface EditMonsterViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> | ||||
| @interface EditMonsterViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, EditableShortStringDelegate> | ||||
|  | ||||
| @property Monster* originalMonster; | ||||
| @property (weak, nonatomic) IBOutlet UITableView *monsterTableView; | ||||
|   | ||||
| @@ -7,6 +7,7 @@ | ||||
| // | ||||
|  | ||||
| #import "EditMonsterViewController.h" | ||||
| #import "EditableShortStringTableViewCell.h" | ||||
|  | ||||
| @interface EditMonsterViewController () | ||||
|  | ||||
|   | ||||
| @@ -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 <NSObject> | ||||
|  | ||||
| @optional | ||||
| -(void)editableValueDidChange:(NSObject*)value forIdentifier:(NSString*)identifier andType:(NSString*)type; | ||||
|  | ||||
| @end | ||||
|  | ||||
|  | ||||
| #endif /* EditableFormFieldDelegate_h */ | ||||
| @@ -0,0 +1,30 @@ | ||||
| // | ||||
| //  EditableShortStringTableViewCell.h | ||||
| //  MonsterCards | ||||
| // | ||||
| //  Created by Tom Hicks on 9/9/20. | ||||
| //  Copyright © 2020 Tom Hicks. All rights reserved. | ||||
| // | ||||
|  | ||||
| #import <UIKit/UIKit.h> | ||||
|  | ||||
| NS_ASSUME_NONNULL_BEGIN | ||||
|  | ||||
| @protocol EditableShortStringDelegate <NSObject> | ||||
|  | ||||
| @optional | ||||
| -(void)editableValueDidChange:(NSString*)value forIdentifier:(NSString*)identifier andType:(NSString*)type; | ||||
|  | ||||
| @end | ||||
|  | ||||
| @interface EditableShortStringTableViewCell : UITableViewCell <UITextFieldDelegate> | ||||
|  | ||||
| @property NSString* identifier; | ||||
| @property NSString* label; | ||||
| @property NSString* value; | ||||
| @property (nonatomic, weak) id<EditableShortStringDelegate> delegate; | ||||
| @property (weak, nonatomic) IBOutlet UITextField *textField; | ||||
|  | ||||
| @end | ||||
|  | ||||
| NS_ASSUME_NONNULL_END | ||||
| @@ -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 | ||||
		Reference in New Issue
	
	Block a user