You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.2 KiB
61 lines
2.2 KiB
//
|
|
// FLEXArgumentInputView.h
|
|
// Flipboard
|
|
//
|
|
// Created by Ryan Olson on 5/30/14.
|
|
// Copyright (c) 2014 Flipboard. All rights reserved.
|
|
//
|
|
|
|
#import <UIKit/UIKit.h>
|
|
|
|
typedef NS_ENUM(NSUInteger, FLEXArgumentInputViewSize) {
|
|
FLEXArgumentInputViewSizeDefault = 0,
|
|
FLEXArgumentInputViewSizeSmall,
|
|
FLEXArgumentInputViewSizeLarge
|
|
};
|
|
|
|
@protocol FLEXArgumentInputViewDelegate;
|
|
|
|
@interface FLEXArgumentInputView : UIView
|
|
|
|
- (instancetype)initWithArgumentTypeEncoding:(const char *)typeEncoding;
|
|
|
|
/// The name of the field. Optional (can be nil).
|
|
@property (nonatomic, copy) NSString *title;
|
|
|
|
/// To populate the filed with an initial value, set this property.
|
|
/// To reteive the value input by the user, access the property.
|
|
/// Primitive types and structs should/will be boxed in NSValue containers.
|
|
/// Concrete subclasses should override both the setter and getter for this property.
|
|
/// Subclasses can call super.inputValue to access a backing store for the value.
|
|
@property (nonatomic) id inputValue;
|
|
|
|
/// Setting this value to large will make some argument input views increase the size of their input field(s).
|
|
/// Useful to increase the use of space if there is only one input view on screen (i.e. for property and ivar editing).
|
|
@property (nonatomic) FLEXArgumentInputViewSize targetSize;
|
|
|
|
/// Users of the input view can get delegate callbacks for incremental changes in user input.
|
|
@property (nonatomic, weak) id <FLEXArgumentInputViewDelegate> delegate;
|
|
|
|
// Subclasses can override
|
|
|
|
/// If the input view has one or more text views, returns YES when one of them is focused.
|
|
@property (nonatomic, readonly) BOOL inputViewIsFirstResponder;
|
|
|
|
/// For subclasses to indicate that they can handle editing a field the give type and value.
|
|
/// Used by FLEXArgumentInputViewFactory to create appropriate input views.
|
|
+ (BOOL)supportsObjCType:(const char *)type withCurrentValue:(id)value;
|
|
|
|
// For subclass eyes only
|
|
|
|
@property (nonatomic, readonly) UILabel *titleLabel;
|
|
@property (nonatomic, readonly) NSString *typeEncoding;
|
|
@property (nonatomic, readonly) CGFloat topInputFieldVerticalLayoutGuide;
|
|
|
|
@end
|
|
|
|
@protocol FLEXArgumentInputViewDelegate <NSObject>
|
|
|
|
- (void)argumentInputViewValueDidChange:(FLEXArgumentInputView *)argumentInputView;
|
|
|
|
@end
|