FLEXIvarEditorViewController.m 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // FLEXIvarEditorViewController.m
  3. // Flipboard
  4. //
  5. // Created by Ryan Olson on 5/23/14.
  6. // Copyright (c) 2014 Flipboard. All rights reserved.
  7. //
  8. #import "FLEXIvarEditorViewController.h"
  9. #import "FLEXFieldEditorView.h"
  10. #import "FLEXRuntimeUtility.h"
  11. #import "FLEXArgumentInputView.h"
  12. #import "FLEXArgumentInputViewFactory.h"
  13. @interface FLEXIvarEditorViewController ()
  14. @property (nonatomic, assign) Ivar ivar;
  15. @end
  16. @implementation FLEXIvarEditorViewController
  17. - (id)initWithTarget:(id)target ivar:(Ivar)ivar
  18. {
  19. self = [super initWithTarget:target];
  20. if (self) {
  21. self.ivar = ivar;
  22. self.title = @"Instance Variable";
  23. }
  24. return self;
  25. }
  26. - (void)viewDidLoad
  27. {
  28. [super viewDidLoad];
  29. self.fieldEditorView.fieldDescription = [FLEXRuntimeUtility prettyNameForIvar:self.ivar];
  30. FLEXArgumentInputView *inputView = [FLEXArgumentInputViewFactory argumentInputViewForTypeEncoding:ivar_getTypeEncoding(self.ivar)];
  31. inputView.backgroundColor = self.view.backgroundColor;
  32. inputView.targetSize = FLEXArgumentInputViewSizeLarge;
  33. inputView.inputOutput = [FLEXRuntimeUtility valueForIvar:self.ivar onObject:self.target];
  34. self.fieldEditorView.argumentInputViews = @[inputView];
  35. }
  36. - (void)actionButtonPressed:(id)sender
  37. {
  38. [super actionButtonPressed:sender];
  39. [FLEXRuntimeUtility setValue:self.firstInputView.inputOutput forIvar:self.ivar onObject:self.target];
  40. self.firstInputView.inputOutput = [FLEXRuntimeUtility valueForIvar:self.ivar onObject:self.target];
  41. }
  42. + (BOOL)canEditIvar:(Ivar)ivar currentValue:(id)value
  43. {
  44. return [FLEXArgumentInputViewFactory canEditFieldWithTypeEncoding:ivar_getTypeEncoding(ivar) currentValue:value];
  45. }
  46. @end