// // FLEXArgumentInputStringView.m // Flipboard // // Created by Ryan Olson on 6/28/14. // Copyright (c) 2014 Flipboard. All rights reserved. // #import "FLEXArgumentInputStringView.h" #import "FLEXRuntimeUtility.h" @implementation FLEXArgumentInputStringView - (instancetype)initWithArgumentTypeEncoding:(const char *)typeEncoding { self = [super initWithArgumentTypeEncoding:typeEncoding]; if (self) { self.targetSize = FLEXArgumentInputViewSizeLarge; } return self; } - (void)setInputValue:(id)inputValue { if ([inputValue isKindOfClass:[NSString class]]) { self.inputTextView.text = inputValue; } // TODO: support NSValue coontaining char * } - (id)inputValue { // Interpret empty string as nil. We loose the ability to set empty string as a string value, // but we accept that tradeoff in exchange for not having to type quotes for every string. return self.inputTextView.text.length > 0 ? [self.inputTextView.text copy] : nil; } // TODO: Support using object address for strings, as in the object arg view. #pragma mark - + (BOOL)supportsObjCType:(const char *)type withCurrentValue:(id)value { NSParameterAssert(type); BOOL typeIsString = strcmp(type, FLEXEncodeClass(NSString)) == 0; BOOL valueIsNilOrString = (!value || [value isKindOfClass:[NSString class]]); return typeIsString && valueIsNilOrString; } @end