├── .gitignore ├── Classes ├── ELCTextFieldCell.h ├── ELCTextFieldCell.m ├── ELCTextFieldCellDemoAppDelegate.h ├── ELCTextFieldCellDemoAppDelegate.m ├── RootViewController.h └── RootViewController.m ├── ELCTextFieldCell.podspec ├── ELCTextFieldCellDemo-Info.plist ├── ELCTextFieldCellDemo.xcodeproj ├── collinruffenach.mode1v3 ├── collinruffenach.pbxuser └── project.pbxproj ├── ELCTextFieldCellDemo_Prefix.pch ├── MainWindow.xib ├── README ├── RootViewController.xib └── main.m /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /build 3 | # XCode (and ancestors) per-user config (very noisy, and not relevant) 4 | *.mode1 5 | *.mode1v3 6 | *.mode2v3 7 | *.perspective 8 | *.perspectivev3 9 | *.pbxuser 10 | # Xcode 4 11 | xcuserdata/ 12 | project.xcworkspace/ 13 | 14 | -------------------------------------------------------------------------------- /Classes/ELCTextFieldCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ELCTextFieldCell.h 3 | // ELC Utility 4 | // 5 | // Copyright 2012 ELC Tech. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @class ELCTextFieldCell; 11 | 12 | @interface ELCInsetTextField : UITextField 13 | 14 | @property (nonatomic, assign) UIEdgeInsets inset; 15 | 16 | @end 17 | 18 | @protocol ELCTextFieldDelegate 19 | 20 | @optional 21 | //Called to the delegate whenever return is hit when a user is typing into the rightTextField of an ELCTextFieldCell 22 | - (BOOL)textFieldCell:(ELCTextFieldCell *)inCell shouldReturnForIndexPath:(NSIndexPath*)inIndexPath withValue:(NSString *)inValue; 23 | //Called to the delegate whenever the text in the rightTextField is changed 24 | - (void)textFieldCell:(ELCTextFieldCell *)inCell updateTextLabelAtIndexPath:(NSIndexPath *)inIndexPath string:(NSString *)inValue; 25 | 26 | - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; 27 | - (BOOL)textFieldShouldEndEditing:(UITextField *)textField; 28 | - (void)textFieldDidBeginEditing:(UITextField *)textField; 29 | - (void)textFieldDidEndEditing:(UITextField *)textField; 30 | 31 | @end 32 | 33 | @interface ELCTextFieldCell : UITableViewCell 34 | 35 | @property (nonatomic, weak) id delegate; 36 | @property (nonatomic, strong) UILabel *leftLabel; 37 | @property (nonatomic, strong) ELCInsetTextField *rightTextField; 38 | @property (nonatomic, strong) NSIndexPath *indexPath; 39 | 40 | @end 41 | 42 | @interface ELCInsetTextFieldCell : ELCTextFieldCell 43 | @property (nonatomic, assign) UIEdgeInsets inset; 44 | @end 45 | 46 | -------------------------------------------------------------------------------- /Classes/ELCTextFieldCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // ELCTextFieldCell.m 3 | // ELC Utility 4 | // 5 | // Copyright 2012 ELC Tech. All rights reserved. 6 | // 7 | 8 | #import "ELCTextFieldCell.h" 9 | 10 | #pragma mark ELCInsetTextField 11 | 12 | @implementation ELCInsetTextField 13 | 14 | - (CGRect)textRectForBounds:(CGRect)bounds 15 | { 16 | return UIEdgeInsetsInsetRect(bounds, _inset); 17 | } 18 | - (CGRect)editingRectForBounds:(CGRect)bounds 19 | { 20 | return UIEdgeInsetsInsetRect(bounds, _inset); 21 | } 22 | - (CGRect)placeholderRectForBounds:(CGRect)bounds 23 | { 24 | return UIEdgeInsetsInsetRect(bounds, _inset); 25 | } 26 | 27 | @end 28 | 29 | #pragma mark - ELCTextFieldCell 30 | 31 | @implementation ELCTextFieldCell 32 | 33 | //using auto synthesizers 34 | 35 | - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 36 | { 37 | self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 38 | if (self) { 39 | 40 | self.leftLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 41 | self.leftLabel.backgroundColor = [UIColor clearColor]; 42 | self.leftLabel.textAlignment = NSTextAlignmentRight; 43 | [self addSubview:_leftLabel]; 44 | 45 | self.rightTextField = [[ELCInsetTextField alloc] initWithFrame:CGRectZero]; 46 | self.rightTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 47 | self.rightTextField.delegate = self; 48 | //Use Done for all of them. 49 | self.rightTextField.returnKeyType = UIReturnKeyDone; 50 | [self addSubview:_rightTextField]; 51 | 52 | //Try to mimic the style of UITableViewCellStyleValue2 if inited with that style 53 | if (style == UITableViewCellStyleValue2) { 54 | //If iOS 7 and set up as UITableViewCellStyleValue2 55 | if ([self respondsToSelector:@selector(tintColor)]) { 56 | self.leftLabel.font = self.textLabel.font; 57 | self.leftLabel.textColor = self.textLabel.textColor; 58 | self.rightTextField.font = self.detailTextLabel.font; 59 | 60 | //iOS 6 and below returns a 0 font size for the detailTextLabel.font 61 | //So Revert to hard coding in the font and color in iOS 6 and below 62 | } else { 63 | self.leftLabel.font = [UIFont boldSystemFontOfSize:12]; 64 | self.leftLabel.textColor = [UIColor colorWithRed:.285 green:.376 blue:.541 alpha:1]; 65 | self.rightTextField.font = [UIFont boldSystemFontOfSize:15]; 66 | } 67 | 68 | //Otherwise have a sane default 69 | } else { 70 | self.leftLabel.font = [UIFont systemFontOfSize:17]; 71 | self.leftLabel.textColor = [UIColor colorWithRed:.285 green:.376 blue:.541 alpha:1]; 72 | self.rightTextField.font = [UIFont systemFontOfSize:17]; 73 | } 74 | } 75 | 76 | return self; 77 | } 78 | 79 | //Layout our fields in case of a layoutchange (fix for iPad doing strange things with margins if width is > 400) 80 | - (void)layoutSubviews 81 | { 82 | [super layoutSubviews]; 83 | CGRect origFrame = self.contentView.frame; 84 | if (_leftLabel.text != nil) { 85 | _leftLabel.hidden = NO; 86 | _leftLabel.frame = CGRectMake(origFrame.origin.x, origFrame.origin.y, 125, origFrame.size.height-1); 87 | _rightTextField.frame = CGRectMake(origFrame.origin.x+130, origFrame.origin.y, origFrame.size.width-140, origFrame.size.height); 88 | } else { 89 | _leftLabel.hidden = YES; 90 | NSInteger imageWidth = 0; 91 | if (self.imageView.image != nil) { 92 | imageWidth = self.imageView.image.size.width + 5; 93 | } 94 | _rightTextField.frame = CGRectMake(origFrame.origin.x+imageWidth+10, origFrame.origin.y, origFrame.size.width-imageWidth-20, origFrame.size.height-1); 95 | } 96 | [self setNeedsDisplay]; 97 | } 98 | 99 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated 100 | { 101 | [super setSelected:selected animated:animated]; 102 | } 103 | 104 | - (BOOL)textFieldShouldReturn:(UITextField *)textField { 105 | 106 | BOOL ret = YES; 107 | if([_delegate respondsToSelector:@selector(textFieldCell:shouldReturnForIndexPath:withValue:)]) { 108 | ret = [_delegate textFieldCell:self shouldReturnForIndexPath:_indexPath withValue:self.rightTextField.text]; 109 | } 110 | if(ret) { 111 | [textField resignFirstResponder]; 112 | } 113 | return ret; 114 | } 115 | 116 | - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 117 | { 118 | NSString *textString = self.rightTextField.text; 119 | textString = [textString stringByReplacingCharactersInRange:range withString:string]; 120 | 121 | if([_delegate respondsToSelector:@selector(textFieldCell:updateTextLabelAtIndexPath:string:)]) { 122 | [_delegate textFieldCell:self updateTextLabelAtIndexPath:_indexPath string:textString]; 123 | } 124 | 125 | return YES; 126 | } 127 | 128 | - (BOOL)textFieldShouldClear:(UITextField *)textField 129 | { 130 | if([_delegate respondsToSelector:@selector(textFieldCell:updateTextLabelAtIndexPath:string:)]) { 131 | [_delegate textFieldCell:self updateTextLabelAtIndexPath:_indexPath string:nil]; 132 | } 133 | return YES; 134 | } 135 | 136 | - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 137 | { 138 | if([_delegate respondsToSelector:@selector(textFieldShouldBeginEditing:)]) { 139 | return [_delegate textFieldShouldBeginEditing:(UITextField *)textField]; 140 | } 141 | return YES; 142 | } 143 | 144 | - (BOOL)textFieldShouldEndEditing:(UITextField *)textField 145 | { 146 | if([_delegate respondsToSelector:@selector(textFieldShouldEndEditing:)]) { 147 | return [_delegate textFieldShouldEndEditing:(UITextField *)textField]; 148 | } 149 | return YES; 150 | } 151 | 152 | - (void)textFieldDidBeginEditing:(UITextField *)textField 153 | { 154 | if([_delegate respondsToSelector:@selector(textFieldDidBeginEditing:)]) { 155 | return [_delegate textFieldDidBeginEditing:(UITextField *)textField]; 156 | } 157 | } 158 | 159 | - (void)textFieldDidEndEditing:(UITextField *)textField 160 | { 161 | if([_delegate respondsToSelector:@selector(textFieldDidEndEditing:)]) { 162 | [_delegate textFieldDidEndEditing:(UITextField*)textField]; 163 | } 164 | } 165 | 166 | - (void)dealloc 167 | { 168 | _delegate = nil; 169 | [_rightTextField resignFirstResponder]; 170 | } 171 | 172 | @end 173 | 174 | #pragma mark - ELCInsetTextFieldCell 175 | @implementation ELCInsetTextFieldCell 176 | - (void)setFrame:(CGRect)frame 177 | { 178 | [super setFrame:UIEdgeInsetsInsetRect(frame, _inset)]; 179 | } 180 | 181 | - (void)layoutSubviews 182 | { 183 | [super layoutSubviews]; 184 | self.rightTextField.frame = CGRectInset(self.rightTextField.frame, 0, 4); 185 | } 186 | @end 187 | 188 | -------------------------------------------------------------------------------- /Classes/ELCTextFieldCellDemoAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ELCTextFieldCellDemoAppDelegate.h 3 | // ELCTextFieldCellDemo 4 | // 5 | // Created by Collin Ruffenach on 1/4/11. 6 | // Copyright 2011 ELC Technologies. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ELCTextFieldCellDemoAppDelegate : NSObject { 12 | 13 | UIWindow *window; 14 | UINavigationController *navigationController; 15 | } 16 | 17 | @property (nonatomic, strong) IBOutlet UIWindow *window; 18 | @property (nonatomic, strong) IBOutlet UINavigationController *navigationController; 19 | 20 | @end 21 | 22 | -------------------------------------------------------------------------------- /Classes/ELCTextFieldCellDemoAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // ELCTextFieldCellDemoAppDelegate.m 3 | // ELCTextFieldCellDemo 4 | // 5 | // Created by Collin Ruffenach on 1/4/11. 6 | // Copyright 2011 ELC Technologies. All rights reserved. 7 | // 8 | 9 | #import "ELCTextFieldCellDemoAppDelegate.h" 10 | #import "RootViewController.h" 11 | 12 | 13 | @implementation ELCTextFieldCellDemoAppDelegate 14 | 15 | @synthesize window; 16 | @synthesize navigationController; 17 | 18 | 19 | #pragma mark - 20 | #pragma mark Application lifecycle 21 | 22 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 23 | 24 | // Override point for customization after application launch. 25 | 26 | // Add the navigation controller's view to the window and display. 27 | [self.window addSubview:navigationController.view]; 28 | [self.window makeKeyAndVisible]; 29 | 30 | return YES; 31 | } 32 | 33 | 34 | - (void)applicationWillResignActive:(UIApplication *)application { 35 | /* 36 | Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 37 | Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 38 | */ 39 | } 40 | 41 | 42 | - (void)applicationDidEnterBackground:(UIApplication *)application { 43 | /* 44 | Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 45 | If your application supports background execution, called instead of applicationWillTerminate: when the user quits. 46 | */ 47 | } 48 | 49 | 50 | - (void)applicationWillEnterForeground:(UIApplication *)application { 51 | /* 52 | Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background. 53 | */ 54 | } 55 | 56 | 57 | - (void)applicationDidBecomeActive:(UIApplication *)application { 58 | /* 59 | Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 60 | */ 61 | } 62 | 63 | 64 | - (void)applicationWillTerminate:(UIApplication *)application { 65 | /* 66 | Called when the application is about to terminate. 67 | See also applicationDidEnterBackground:. 68 | */ 69 | } 70 | 71 | 72 | #pragma mark - 73 | #pragma mark Memory management 74 | 75 | - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { 76 | /* 77 | Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later. 78 | */ 79 | } 80 | 81 | 82 | 83 | 84 | @end 85 | 86 | -------------------------------------------------------------------------------- /Classes/RootViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.h 3 | // ELCTextFieldCellDemo 4 | // 5 | // Created by Collin Ruffenach on 1/4/11. 6 | // Copyright 2011 ELC Technologies. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ELCTextfieldCell.h" 11 | 12 | @interface RootViewController : UITableViewController { 13 | 14 | NSArray *labels; 15 | NSArray *placeholders; 16 | } 17 | 18 | @property (nonatomic, strong) NSArray *labels; 19 | @property (nonatomic, strong) NSArray *placeholders; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Classes/RootViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.m 3 | // ELCTextFieldCellDemo 4 | // 5 | // Created by Collin Ruffenach on 1/4/11. 6 | // Copyright 2011 ELC Technologies. All rights reserved. 7 | // 8 | 9 | #import "RootViewController.h" 10 | 11 | @interface RootViewController (Private) 12 | - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath; 13 | @end 14 | 15 | @implementation RootViewController 16 | 17 | @synthesize labels; 18 | @synthesize placeholders; 19 | 20 | #pragma mark - 21 | #pragma mark View lifecycle 22 | 23 | - (void)viewDidLoad { 24 | [super viewDidLoad]; 25 | 26 | self.labels = [NSArray arrayWithObjects:@"First Name", 27 | @"Last Name", 28 | @"Email", 29 | @"Phone Number", 30 | nil]; 31 | 32 | self.placeholders = [NSArray arrayWithObjects:@"Enter First Name", 33 | @"Enter Last Name", 34 | @"Enter Email", 35 | @"Phone Number (Optional)", 36 | nil]; 37 | } 38 | 39 | #pragma mark - 40 | #pragma mark Table view data source 41 | 42 | - (void)configureCell:(ELCTextFieldCell *)cell atIndexPath:(NSIndexPath *)indexPath { 43 | 44 | cell.leftLabel.text = [self.labels objectAtIndex:indexPath.row]; 45 | cell.rightTextField.placeholder = [self.placeholders objectAtIndex:indexPath.row]; 46 | cell.indexPath = indexPath; 47 | cell.delegate = self; 48 | //Disables UITableViewCell from accidentally becoming selected. 49 | cell.selectionStyle = UITableViewCellEditingStyleNone; 50 | 51 | 52 | if (indexPath.row == 3) { 53 | [cell.rightTextField setKeyboardType:UIKeyboardTypeNumberPad]; 54 | } 55 | } 56 | 57 | // Customize the number of sections in the table view. 58 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 59 | return 1; 60 | } 61 | 62 | 63 | // Customize the number of rows in the table view. 64 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 65 | return 4; 66 | } 67 | 68 | 69 | // Customize the appearance of table view cells. 70 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 71 | 72 | static NSString *CellIdentifier = @"Cell"; 73 | 74 | ELCTextFieldCell *cell = (ELCTextFieldCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 75 | if (cell == nil) { 76 | cell = [[ELCTextFieldCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier]; 77 | } 78 | 79 | [self configureCell:cell atIndexPath:indexPath]; 80 | 81 | return cell; 82 | } 83 | 84 | 85 | #pragma mark ELCTextFieldCellDelegate Methods 86 | 87 | - (void)textFieldDidEndEditing:(UITextField *)textField 88 | { 89 | ELCTextFieldCell *textFieldCell = (ELCTextFieldCell*)textField.superview; 90 | if (![textFieldCell isKindOfClass:ELCTextFieldCell.class]) { 91 | return; 92 | } 93 | //It's a better method to get the indexPath like this, in case you are rearranging / removing / adding rows, 94 | //the set indexPath wouldn't change 95 | NSIndexPath *indexPath = [self.tableView indexPathForCell:textFieldCell]; 96 | if(indexPath != nil && indexPath.row < [labels count]-1) { 97 | NSIndexPath *path = [NSIndexPath indexPathForRow:indexPath.row+1 inSection:indexPath.section]; 98 | [[(ELCTextFieldCell*)[self.tableView cellForRowAtIndexPath:path] rightTextField] becomeFirstResponder]; 99 | [self.tableView scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionTop animated:YES]; 100 | } 101 | else { 102 | [[(ELCTextFieldCell*)[self.tableView cellForRowAtIndexPath:indexPath] rightTextField] resignFirstResponder]; 103 | } 104 | } 105 | 106 | - (void)textFieldCell:(ELCTextFieldCell *)inCell updateTextLabelAtIndexPath:(NSIndexPath *)indexPath string:(NSString *)string { 107 | 108 | NSLog(@"See input: %@ from section: %d row: %d, should update models appropriately", string, indexPath.section, indexPath.row); 109 | } 110 | 111 | @end 112 | 113 | -------------------------------------------------------------------------------- /ELCTextFieldCell.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'ELCTextFieldCell' 3 | s.version = '0.2.0' 4 | s.summary = 'A UITableViewCell subclass useful for forms.' 5 | s.homepage = 'https://github.com/elc/ELCTextFieldCell' 6 | s.license = { 7 | :type => 'MIT', 8 | :file => 'README' 9 | } 10 | s.author = {'ELC Technologies' => 'http://elctech.com'} 11 | s.source = {:git => 'https://github.com/elc/ELCTextFieldCell.git', 12 | :tag => '0.2.0' 13 | } 14 | s.platform = :ios, '6.0' 15 | s.source_files = 'Classes/ELCTextFieldCell.{h,m}' 16 | s.framework = 'Foundation', 'UIKit' 17 | s.requires_arc = true 18 | end 19 | -------------------------------------------------------------------------------- /ELCTextFieldCellDemo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | com.yourcompany.${PRODUCT_NAME:rfc1034identifier} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | NSMainNibFile 28 | MainWindow 29 | 30 | 31 | -------------------------------------------------------------------------------- /ELCTextFieldCellDemo.xcodeproj/collinruffenach.mode1v3: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ActivePerspectiveName 6 | Project 7 | AllowedModules 8 | 9 | 10 | BundleLoadPath 11 | 12 | MaxInstances 13 | n 14 | Module 15 | PBXSmartGroupTreeModule 16 | Name 17 | Groups and Files Outline View 18 | 19 | 20 | BundleLoadPath 21 | 22 | MaxInstances 23 | n 24 | Module 25 | PBXNavigatorGroup 26 | Name 27 | Editor 28 | 29 | 30 | BundleLoadPath 31 | 32 | MaxInstances 33 | n 34 | Module 35 | XCTaskListModule 36 | Name 37 | Task List 38 | 39 | 40 | BundleLoadPath 41 | 42 | MaxInstances 43 | n 44 | Module 45 | XCDetailModule 46 | Name 47 | File and Smart Group Detail Viewer 48 | 49 | 50 | BundleLoadPath 51 | 52 | MaxInstances 53 | 1 54 | Module 55 | PBXBuildResultsModule 56 | Name 57 | Detailed Build Results Viewer 58 | 59 | 60 | BundleLoadPath 61 | 62 | MaxInstances 63 | 1 64 | Module 65 | PBXProjectFindModule 66 | Name 67 | Project Batch Find Tool 68 | 69 | 70 | BundleLoadPath 71 | 72 | MaxInstances 73 | n 74 | Module 75 | XCProjectFormatConflictsModule 76 | Name 77 | Project Format Conflicts List 78 | 79 | 80 | BundleLoadPath 81 | 82 | MaxInstances 83 | n 84 | Module 85 | PBXBookmarksModule 86 | Name 87 | Bookmarks Tool 88 | 89 | 90 | BundleLoadPath 91 | 92 | MaxInstances 93 | n 94 | Module 95 | PBXClassBrowserModule 96 | Name 97 | Class Browser 98 | 99 | 100 | BundleLoadPath 101 | 102 | MaxInstances 103 | n 104 | Module 105 | PBXCVSModule 106 | Name 107 | Source Code Control Tool 108 | 109 | 110 | BundleLoadPath 111 | 112 | MaxInstances 113 | n 114 | Module 115 | PBXDebugBreakpointsModule 116 | Name 117 | Debug Breakpoints Tool 118 | 119 | 120 | BundleLoadPath 121 | 122 | MaxInstances 123 | n 124 | Module 125 | XCDockableInspector 126 | Name 127 | Inspector 128 | 129 | 130 | BundleLoadPath 131 | 132 | MaxInstances 133 | n 134 | Module 135 | PBXOpenQuicklyModule 136 | Name 137 | Open Quickly Tool 138 | 139 | 140 | BundleLoadPath 141 | 142 | MaxInstances 143 | 1 144 | Module 145 | PBXDebugSessionModule 146 | Name 147 | Debugger 148 | 149 | 150 | BundleLoadPath 151 | 152 | MaxInstances 153 | 1 154 | Module 155 | PBXDebugCLIModule 156 | Name 157 | Debug Console 158 | 159 | 160 | BundleLoadPath 161 | 162 | MaxInstances 163 | n 164 | Module 165 | XCSnapshotModule 166 | Name 167 | Snapshots Tool 168 | 169 | 170 | BundlePath 171 | /Developer-42-GM/Library/PrivateFrameworks/DevToolsInterface.framework/Resources 172 | Description 173 | DefaultDescriptionKey 174 | DockingSystemVisible 175 | 176 | Extension 177 | mode1v3 178 | FavBarConfig 179 | 180 | PBXProjectModuleGUID 181 | E26407D012D3A589005DA328 182 | XCBarModuleItemNames 183 | 184 | XCBarModuleItems 185 | 186 | 187 | FirstTimeWindowDisplayed 188 | 189 | Identifier 190 | com.apple.perspectives.project.mode1v3 191 | MajorVersion 192 | 33 193 | MinorVersion 194 | 0 195 | Name 196 | Default 197 | Notifications 198 | 199 | OpenEditors 200 | 201 | PerspectiveWidths 202 | 203 | -1 204 | -1 205 | 206 | Perspectives 207 | 208 | 209 | ChosenToolbarItems 210 | 211 | active-combo-popup 212 | action 213 | NSToolbarFlexibleSpaceItem 214 | debugger-enable-breakpoints 215 | build-and-go 216 | com.apple.ide.PBXToolbarStopButton 217 | get-info 218 | NSToolbarFlexibleSpaceItem 219 | com.apple.pbx.toolbar.searchfield 220 | 221 | ControllerClassBaseName 222 | 223 | IconName 224 | WindowOfProjectWithEditor 225 | Identifier 226 | perspective.project 227 | IsVertical 228 | 229 | Layout 230 | 231 | 232 | ContentConfiguration 233 | 234 | PBXBottomSmartGroupGIDs 235 | 236 | 1C37FBAC04509CD000000102 237 | 1C37FAAC04509CD000000102 238 | 1C37FABC05509CD000000102 239 | 1C37FABC05539CD112110102 240 | E2644B35053B69B200211256 241 | 1C37FABC04509CD000100104 242 | 1CC0EA4004350EF90044410B 243 | 1CC0EA4004350EF90041110B 244 | 245 | PBXProjectModuleGUID 246 | 1CE0B1FE06471DED0097A5F4 247 | PBXProjectModuleLabel 248 | Files 249 | PBXProjectStructureProvided 250 | yes 251 | PBXSmartGroupTreeModuleColumnData 252 | 253 | PBXSmartGroupTreeModuleColumnWidthsKey 254 | 255 | 186 256 | 257 | PBXSmartGroupTreeModuleColumnsKey_v4 258 | 259 | MainColumn 260 | 261 | 262 | PBXSmartGroupTreeModuleOutlineStateKey_v7 263 | 264 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 265 | 266 | 29B97314FDCFA39411CA2CEA 267 | 080E96DDFE201D6D7F000001 268 | 1C37FABC05509CD000000102 269 | 270 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 271 | 272 | 273 | 5 274 | 1 275 | 0 276 | 277 | 278 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 279 | {{0, 0}, {186, 914}} 280 | 281 | PBXTopSmartGroupGIDs 282 | 283 | XCIncludePerspectivesSwitch 284 | 285 | XCSharingToken 286 | com.apple.Xcode.GFSharingToken 287 | 288 | GeometryConfiguration 289 | 290 | Frame 291 | {{0, 0}, {203, 932}} 292 | GroupTreeTableConfiguration 293 | 294 | MainColumn 295 | 186 296 | 297 | RubberWindowFrame 298 | 0 55 1676 973 0 0 1680 1028 299 | 300 | Module 301 | PBXSmartGroupTreeModule 302 | Proportion 303 | 203pt 304 | 305 | 306 | Dock 307 | 308 | 309 | BecomeActive 310 | 311 | ContentConfiguration 312 | 313 | PBXProjectModuleGUID 314 | 1CE0B20306471E060097A5F4 315 | PBXProjectModuleLabel 316 | RootViewController.m 317 | PBXSplitModuleInNavigatorKey 318 | 319 | Split0 320 | 321 | PBXProjectModuleGUID 322 | 1CE0B20406471E060097A5F4 323 | PBXProjectModuleLabel 324 | RootViewController.m 325 | _historyCapacity 326 | 0 327 | bookmark 328 | E264084512D3A8C9005DA328 329 | history 330 | 331 | E264082512D3A870005DA328 332 | E264082612D3A870005DA328 333 | E264084212D3A8C9005DA328 334 | E264084312D3A8C9005DA328 335 | E264084412D3A8C9005DA328 336 | 337 | 338 | SplitCount 339 | 1 340 | 341 | StatusBarVisibility 342 | 343 | 344 | GeometryConfiguration 345 | 346 | Frame 347 | {{0, 0}, {1468, 746}} 348 | RubberWindowFrame 349 | 0 55 1676 973 0 0 1680 1028 350 | 351 | Module 352 | PBXNavigatorGroup 353 | Proportion 354 | 746pt 355 | 356 | 357 | ContentConfiguration 358 | 359 | PBXProjectModuleGUID 360 | 1CE0B20506471E060097A5F4 361 | PBXProjectModuleLabel 362 | Detail 363 | 364 | GeometryConfiguration 365 | 366 | Frame 367 | {{0, 751}, {1468, 181}} 368 | RubberWindowFrame 369 | 0 55 1676 973 0 0 1680 1028 370 | 371 | Module 372 | XCDetailModule 373 | Proportion 374 | 181pt 375 | 376 | 377 | Proportion 378 | 1468pt 379 | 380 | 381 | Name 382 | Project 383 | ServiceClasses 384 | 385 | XCModuleDock 386 | PBXSmartGroupTreeModule 387 | XCModuleDock 388 | PBXNavigatorGroup 389 | XCDetailModule 390 | 391 | TableOfContents 392 | 393 | E26407CE12D3A589005DA328 394 | 1CE0B1FE06471DED0097A5F4 395 | E26407CF12D3A589005DA328 396 | 1CE0B20306471E060097A5F4 397 | 1CE0B20506471E060097A5F4 398 | 399 | ToolbarConfigUserDefaultsMinorVersion 400 | 2 401 | ToolbarConfiguration 402 | xcode.toolbar.config.defaultV3 403 | 404 | 405 | ControllerClassBaseName 406 | 407 | IconName 408 | WindowOfProject 409 | Identifier 410 | perspective.morph 411 | IsVertical 412 | 0 413 | Layout 414 | 415 | 416 | BecomeActive 417 | 1 418 | ContentConfiguration 419 | 420 | PBXBottomSmartGroupGIDs 421 | 422 | 1C37FBAC04509CD000000102 423 | 1C37FAAC04509CD000000102 424 | 1C08E77C0454961000C914BD 425 | 1C37FABC05509CD000000102 426 | 1C37FABC05539CD112110102 427 | E2644B35053B69B200211256 428 | 1C37FABC04509CD000100104 429 | 1CC0EA4004350EF90044410B 430 | 1CC0EA4004350EF90041110B 431 | 432 | PBXProjectModuleGUID 433 | 11E0B1FE06471DED0097A5F4 434 | PBXProjectModuleLabel 435 | Files 436 | PBXProjectStructureProvided 437 | yes 438 | PBXSmartGroupTreeModuleColumnData 439 | 440 | PBXSmartGroupTreeModuleColumnWidthsKey 441 | 442 | 186 443 | 444 | PBXSmartGroupTreeModuleColumnsKey_v4 445 | 446 | MainColumn 447 | 448 | 449 | PBXSmartGroupTreeModuleOutlineStateKey_v7 450 | 451 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 452 | 453 | 29B97314FDCFA39411CA2CEA 454 | 1C37FABC05509CD000000102 455 | 456 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 457 | 458 | 459 | 0 460 | 461 | 462 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 463 | {{0, 0}, {186, 337}} 464 | 465 | PBXTopSmartGroupGIDs 466 | 467 | XCIncludePerspectivesSwitch 468 | 1 469 | XCSharingToken 470 | com.apple.Xcode.GFSharingToken 471 | 472 | GeometryConfiguration 473 | 474 | Frame 475 | {{0, 0}, {203, 355}} 476 | GroupTreeTableConfiguration 477 | 478 | MainColumn 479 | 186 480 | 481 | RubberWindowFrame 482 | 373 269 690 397 0 0 1440 878 483 | 484 | Module 485 | PBXSmartGroupTreeModule 486 | Proportion 487 | 100% 488 | 489 | 490 | Name 491 | Morph 492 | PreferredWidth 493 | 300 494 | ServiceClasses 495 | 496 | XCModuleDock 497 | PBXSmartGroupTreeModule 498 | 499 | TableOfContents 500 | 501 | 11E0B1FE06471DED0097A5F4 502 | 503 | ToolbarConfiguration 504 | xcode.toolbar.config.default.shortV3 505 | 506 | 507 | PerspectivesBarVisible 508 | 509 | ShelfIsVisible 510 | 511 | SourceDescription 512 | file at '/Developer-42-GM/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' 513 | StatusbarIsVisible 514 | 515 | TimeStamp 516 | 0.0 517 | ToolbarConfigUserDefaultsMinorVersion 518 | 2 519 | ToolbarDisplayMode 520 | 1 521 | ToolbarIsVisible 522 | 523 | ToolbarSizeMode 524 | 1 525 | Type 526 | Perspectives 527 | UpdateMessage 528 | The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? 529 | WindowJustification 530 | 5 531 | WindowOrderList 532 | 533 | E264083212D3A870005DA328 534 | E264083312D3A870005DA328 535 | 1CD10A99069EF8BA00B06720 536 | 1C0AD2AF069F1E9B00FABCE6 537 | E26407D112D3A589005DA328 538 | /Users/collinruffenach/Desktop/ELCTextFieldCellDemo/ELCTextFieldCellDemo.xcodeproj 539 | 1C78EAAD065D492600B07095 540 | 541 | WindowString 542 | 0 55 1676 973 0 0 1680 1028 543 | WindowToolsV3 544 | 545 | 546 | FirstTimeWindowDisplayed 547 | 548 | Identifier 549 | windowTool.build 550 | IsVertical 551 | 552 | Layout 553 | 554 | 555 | Dock 556 | 557 | 558 | ContentConfiguration 559 | 560 | PBXProjectModuleGUID 561 | 1CD0528F0623707200166675 562 | PBXProjectModuleLabel 563 | RootViewController.m 564 | StatusBarVisibility 565 | 566 | 567 | GeometryConfiguration 568 | 569 | Frame 570 | {{0, 0}, {500, 218}} 571 | RubberWindowFrame 572 | 42 482 500 500 0 0 1680 1028 573 | 574 | Module 575 | PBXNavigatorGroup 576 | Proportion 577 | 218pt 578 | 579 | 580 | BecomeActive 581 | 582 | ContentConfiguration 583 | 584 | PBXProjectModuleGUID 585 | XCMainBuildResultsModuleGUID 586 | PBXProjectModuleLabel 587 | Build Results 588 | XCBuildResultsTrigger_Collapse 589 | 1021 590 | XCBuildResultsTrigger_Open 591 | 1011 592 | 593 | GeometryConfiguration 594 | 595 | Frame 596 | {{0, 223}, {500, 236}} 597 | RubberWindowFrame 598 | 42 482 500 500 0 0 1680 1028 599 | 600 | Module 601 | PBXBuildResultsModule 602 | Proportion 603 | 236pt 604 | 605 | 606 | Proportion 607 | 459pt 608 | 609 | 610 | Name 611 | Build Results 612 | ServiceClasses 613 | 614 | PBXBuildResultsModule 615 | 616 | StatusbarIsVisible 617 | 618 | TableOfContents 619 | 620 | E26407D112D3A589005DA328 621 | E26407D212D3A589005DA328 622 | 1CD0528F0623707200166675 623 | XCMainBuildResultsModuleGUID 624 | 625 | ToolbarConfiguration 626 | xcode.toolbar.config.buildV3 627 | WindowContentMinSize 628 | 486 300 629 | WindowString 630 | 42 482 500 500 0 0 1680 1028 631 | WindowToolGUID 632 | E26407D112D3A589005DA328 633 | WindowToolIsVisible 634 | 635 | 636 | 637 | FirstTimeWindowDisplayed 638 | 639 | Identifier 640 | windowTool.debugger 641 | IsVertical 642 | 643 | Layout 644 | 645 | 646 | Dock 647 | 648 | 649 | ContentConfiguration 650 | 651 | Debugger 652 | 653 | HorizontalSplitView 654 | 655 | _collapsingFrameDimension 656 | 0.0 657 | _indexOfCollapsedView 658 | 0 659 | _percentageOfCollapsedView 660 | 0.0 661 | isCollapsed 662 | yes 663 | sizes 664 | 665 | {{0, 0}, {316, 185}} 666 | {{316, 0}, {378, 185}} 667 | 668 | 669 | VerticalSplitView 670 | 671 | _collapsingFrameDimension 672 | 0.0 673 | _indexOfCollapsedView 674 | 0 675 | _percentageOfCollapsedView 676 | 0.0 677 | isCollapsed 678 | yes 679 | sizes 680 | 681 | {{0, 0}, {694, 185}} 682 | {{0, 185}, {694, 196}} 683 | 684 | 685 | 686 | LauncherConfigVersion 687 | 8 688 | PBXProjectModuleGUID 689 | 1C162984064C10D400B95A72 690 | PBXProjectModuleLabel 691 | Debug - GLUTExamples (Underwater) 692 | 693 | GeometryConfiguration 694 | 695 | DebugConsoleVisible 696 | None 697 | DebugConsoleWindowFrame 698 | {{200, 200}, {500, 300}} 699 | DebugSTDIOWindowFrame 700 | {{200, 200}, {500, 300}} 701 | Frame 702 | {{0, 0}, {694, 381}} 703 | PBXDebugSessionStackFrameViewKey 704 | 705 | DebugVariablesTableConfiguration 706 | 707 | Name 708 | 120 709 | Value 710 | 85 711 | Summary 712 | 148 713 | 714 | Frame 715 | {{316, 0}, {378, 185}} 716 | RubberWindowFrame 717 | 21 583 694 422 0 0 1680 1028 718 | 719 | RubberWindowFrame 720 | 21 583 694 422 0 0 1680 1028 721 | 722 | Module 723 | PBXDebugSessionModule 724 | Proportion 725 | 381pt 726 | 727 | 728 | Proportion 729 | 381pt 730 | 731 | 732 | Name 733 | Debugger 734 | ServiceClasses 735 | 736 | PBXDebugSessionModule 737 | 738 | StatusbarIsVisible 739 | 740 | TableOfContents 741 | 742 | 1CD10A99069EF8BA00B06720 743 | E264082A12D3A870005DA328 744 | 1C162984064C10D400B95A72 745 | E264082B12D3A870005DA328 746 | E264082C12D3A870005DA328 747 | E264082D12D3A870005DA328 748 | E264082E12D3A870005DA328 749 | E264082F12D3A870005DA328 750 | 751 | ToolbarConfiguration 752 | xcode.toolbar.config.debugV3 753 | WindowString 754 | 21 583 694 422 0 0 1680 1028 755 | WindowToolGUID 756 | 1CD10A99069EF8BA00B06720 757 | WindowToolIsVisible 758 | 759 | 760 | 761 | Identifier 762 | windowTool.find 763 | Layout 764 | 765 | 766 | Dock 767 | 768 | 769 | Dock 770 | 771 | 772 | ContentConfiguration 773 | 774 | PBXProjectModuleGUID 775 | 1CDD528C0622207200134675 776 | PBXProjectModuleLabel 777 | <No Editor> 778 | PBXSplitModuleInNavigatorKey 779 | 780 | Split0 781 | 782 | PBXProjectModuleGUID 783 | 1CD0528D0623707200166675 784 | 785 | SplitCount 786 | 1 787 | 788 | StatusBarVisibility 789 | 1 790 | 791 | GeometryConfiguration 792 | 793 | Frame 794 | {{0, 0}, {781, 167}} 795 | RubberWindowFrame 796 | 62 385 781 470 0 0 1440 878 797 | 798 | Module 799 | PBXNavigatorGroup 800 | Proportion 801 | 781pt 802 | 803 | 804 | Proportion 805 | 50% 806 | 807 | 808 | BecomeActive 809 | 1 810 | ContentConfiguration 811 | 812 | PBXProjectModuleGUID 813 | 1CD0528E0623707200166675 814 | PBXProjectModuleLabel 815 | Project Find 816 | 817 | GeometryConfiguration 818 | 819 | Frame 820 | {{8, 0}, {773, 254}} 821 | RubberWindowFrame 822 | 62 385 781 470 0 0 1440 878 823 | 824 | Module 825 | PBXProjectFindModule 826 | Proportion 827 | 50% 828 | 829 | 830 | Proportion 831 | 428pt 832 | 833 | 834 | Name 835 | Project Find 836 | ServiceClasses 837 | 838 | PBXProjectFindModule 839 | 840 | StatusbarIsVisible 841 | 1 842 | TableOfContents 843 | 844 | 1C530D57069F1CE1000CFCEE 845 | 1C530D58069F1CE1000CFCEE 846 | 1C530D59069F1CE1000CFCEE 847 | 1CDD528C0622207200134675 848 | 1C530D5A069F1CE1000CFCEE 849 | 1CE0B1FE06471DED0097A5F4 850 | 1CD0528E0623707200166675 851 | 852 | WindowString 853 | 62 385 781 470 0 0 1440 878 854 | WindowToolGUID 855 | 1C530D57069F1CE1000CFCEE 856 | WindowToolIsVisible 857 | 0 858 | 859 | 860 | Identifier 861 | MENUSEPARATOR 862 | 863 | 864 | FirstTimeWindowDisplayed 865 | 866 | Identifier 867 | windowTool.debuggerConsole 868 | IsVertical 869 | 870 | Layout 871 | 872 | 873 | Dock 874 | 875 | 876 | BecomeActive 877 | 878 | ContentConfiguration 879 | 880 | PBXProjectModuleGUID 881 | 1C78EAAC065D492600B07095 882 | PBXProjectModuleLabel 883 | Debugger Console 884 | 885 | GeometryConfiguration 886 | 887 | Frame 888 | {{0, 0}, {650, 209}} 889 | RubberWindowFrame 890 | 21 755 650 250 0 0 1680 1028 891 | 892 | Module 893 | PBXDebugCLIModule 894 | Proportion 895 | 209pt 896 | 897 | 898 | Proportion 899 | 209pt 900 | 901 | 902 | Name 903 | Debugger Console 904 | ServiceClasses 905 | 906 | PBXDebugCLIModule 907 | 908 | StatusbarIsVisible 909 | 910 | TableOfContents 911 | 912 | 1C78EAAD065D492600B07095 913 | E264083012D3A870005DA328 914 | 1C78EAAC065D492600B07095 915 | 916 | ToolbarConfiguration 917 | xcode.toolbar.config.consoleV3 918 | WindowString 919 | 21 755 650 250 0 0 1680 1028 920 | WindowToolGUID 921 | 1C78EAAD065D492600B07095 922 | WindowToolIsVisible 923 | 924 | 925 | 926 | Identifier 927 | windowTool.snapshots 928 | Layout 929 | 930 | 931 | Dock 932 | 933 | 934 | Module 935 | XCSnapshotModule 936 | Proportion 937 | 100% 938 | 939 | 940 | Proportion 941 | 100% 942 | 943 | 944 | Name 945 | Snapshots 946 | ServiceClasses 947 | 948 | XCSnapshotModule 949 | 950 | StatusbarIsVisible 951 | Yes 952 | ToolbarConfiguration 953 | xcode.toolbar.config.snapshots 954 | WindowString 955 | 315 824 300 550 0 0 1440 878 956 | WindowToolIsVisible 957 | Yes 958 | 959 | 960 | Identifier 961 | windowTool.scm 962 | Layout 963 | 964 | 965 | Dock 966 | 967 | 968 | ContentConfiguration 969 | 970 | PBXProjectModuleGUID 971 | 1C78EAB2065D492600B07095 972 | PBXProjectModuleLabel 973 | <No Editor> 974 | PBXSplitModuleInNavigatorKey 975 | 976 | Split0 977 | 978 | PBXProjectModuleGUID 979 | 1C78EAB3065D492600B07095 980 | 981 | SplitCount 982 | 1 983 | 984 | StatusBarVisibility 985 | 1 986 | 987 | GeometryConfiguration 988 | 989 | Frame 990 | {{0, 0}, {452, 0}} 991 | RubberWindowFrame 992 | 743 379 452 308 0 0 1280 1002 993 | 994 | Module 995 | PBXNavigatorGroup 996 | Proportion 997 | 0pt 998 | 999 | 1000 | BecomeActive 1001 | 1 1002 | ContentConfiguration 1003 | 1004 | PBXProjectModuleGUID 1005 | 1CD052920623707200166675 1006 | PBXProjectModuleLabel 1007 | SCM 1008 | 1009 | GeometryConfiguration 1010 | 1011 | ConsoleFrame 1012 | {{0, 259}, {452, 0}} 1013 | Frame 1014 | {{0, 7}, {452, 259}} 1015 | RubberWindowFrame 1016 | 743 379 452 308 0 0 1280 1002 1017 | TableConfiguration 1018 | 1019 | Status 1020 | 30 1021 | FileName 1022 | 199 1023 | Path 1024 | 197.0950012207031 1025 | 1026 | TableFrame 1027 | {{0, 0}, {452, 250}} 1028 | 1029 | Module 1030 | PBXCVSModule 1031 | Proportion 1032 | 262pt 1033 | 1034 | 1035 | Proportion 1036 | 266pt 1037 | 1038 | 1039 | Name 1040 | SCM 1041 | ServiceClasses 1042 | 1043 | PBXCVSModule 1044 | 1045 | StatusbarIsVisible 1046 | 1 1047 | TableOfContents 1048 | 1049 | 1C78EAB4065D492600B07095 1050 | 1C78EAB5065D492600B07095 1051 | 1C78EAB2065D492600B07095 1052 | 1CD052920623707200166675 1053 | 1054 | ToolbarConfiguration 1055 | xcode.toolbar.config.scm 1056 | WindowString 1057 | 743 379 452 308 0 0 1280 1002 1058 | 1059 | 1060 | Identifier 1061 | windowTool.breakpoints 1062 | IsVertical 1063 | 0 1064 | Layout 1065 | 1066 | 1067 | Dock 1068 | 1069 | 1070 | BecomeActive 1071 | 1 1072 | ContentConfiguration 1073 | 1074 | PBXBottomSmartGroupGIDs 1075 | 1076 | 1C77FABC04509CD000000102 1077 | 1078 | PBXProjectModuleGUID 1079 | 1CE0B1FE06471DED0097A5F4 1080 | PBXProjectModuleLabel 1081 | Files 1082 | PBXProjectStructureProvided 1083 | no 1084 | PBXSmartGroupTreeModuleColumnData 1085 | 1086 | PBXSmartGroupTreeModuleColumnWidthsKey 1087 | 1088 | 168 1089 | 1090 | PBXSmartGroupTreeModuleColumnsKey_v4 1091 | 1092 | MainColumn 1093 | 1094 | 1095 | PBXSmartGroupTreeModuleOutlineStateKey_v7 1096 | 1097 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 1098 | 1099 | 1C77FABC04509CD000000102 1100 | 1101 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 1102 | 1103 | 1104 | 0 1105 | 1106 | 1107 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 1108 | {{0, 0}, {168, 350}} 1109 | 1110 | PBXTopSmartGroupGIDs 1111 | 1112 | XCIncludePerspectivesSwitch 1113 | 0 1114 | 1115 | GeometryConfiguration 1116 | 1117 | Frame 1118 | {{0, 0}, {185, 368}} 1119 | GroupTreeTableConfiguration 1120 | 1121 | MainColumn 1122 | 168 1123 | 1124 | RubberWindowFrame 1125 | 315 424 744 409 0 0 1440 878 1126 | 1127 | Module 1128 | PBXSmartGroupTreeModule 1129 | Proportion 1130 | 185pt 1131 | 1132 | 1133 | ContentConfiguration 1134 | 1135 | PBXProjectModuleGUID 1136 | 1CA1AED706398EBD00589147 1137 | PBXProjectModuleLabel 1138 | Detail 1139 | 1140 | GeometryConfiguration 1141 | 1142 | Frame 1143 | {{190, 0}, {554, 368}} 1144 | RubberWindowFrame 1145 | 315 424 744 409 0 0 1440 878 1146 | 1147 | Module 1148 | XCDetailModule 1149 | Proportion 1150 | 554pt 1151 | 1152 | 1153 | Proportion 1154 | 368pt 1155 | 1156 | 1157 | MajorVersion 1158 | 3 1159 | MinorVersion 1160 | 0 1161 | Name 1162 | Breakpoints 1163 | ServiceClasses 1164 | 1165 | PBXSmartGroupTreeModule 1166 | XCDetailModule 1167 | 1168 | StatusbarIsVisible 1169 | 1 1170 | TableOfContents 1171 | 1172 | 1CDDB66807F98D9800BB5817 1173 | 1CDDB66907F98D9800BB5817 1174 | 1CE0B1FE06471DED0097A5F4 1175 | 1CA1AED706398EBD00589147 1176 | 1177 | ToolbarConfiguration 1178 | xcode.toolbar.config.breakpointsV3 1179 | WindowString 1180 | 315 424 744 409 0 0 1440 878 1181 | WindowToolGUID 1182 | 1CDDB66807F98D9800BB5817 1183 | WindowToolIsVisible 1184 | 1 1185 | 1186 | 1187 | Identifier 1188 | windowTool.debugAnimator 1189 | Layout 1190 | 1191 | 1192 | Dock 1193 | 1194 | 1195 | Module 1196 | PBXNavigatorGroup 1197 | Proportion 1198 | 100% 1199 | 1200 | 1201 | Proportion 1202 | 100% 1203 | 1204 | 1205 | Name 1206 | Debug Visualizer 1207 | ServiceClasses 1208 | 1209 | PBXNavigatorGroup 1210 | 1211 | StatusbarIsVisible 1212 | 1 1213 | ToolbarConfiguration 1214 | xcode.toolbar.config.debugAnimatorV3 1215 | WindowString 1216 | 100 100 700 500 0 0 1280 1002 1217 | 1218 | 1219 | Identifier 1220 | windowTool.bookmarks 1221 | Layout 1222 | 1223 | 1224 | Dock 1225 | 1226 | 1227 | Module 1228 | PBXBookmarksModule 1229 | Proportion 1230 | 100% 1231 | 1232 | 1233 | Proportion 1234 | 100% 1235 | 1236 | 1237 | Name 1238 | Bookmarks 1239 | ServiceClasses 1240 | 1241 | PBXBookmarksModule 1242 | 1243 | StatusbarIsVisible 1244 | 0 1245 | WindowString 1246 | 538 42 401 187 0 0 1280 1002 1247 | 1248 | 1249 | Identifier 1250 | windowTool.projectFormatConflicts 1251 | Layout 1252 | 1253 | 1254 | Dock 1255 | 1256 | 1257 | Module 1258 | XCProjectFormatConflictsModule 1259 | Proportion 1260 | 100% 1261 | 1262 | 1263 | Proportion 1264 | 100% 1265 | 1266 | 1267 | Name 1268 | Project Format Conflicts 1269 | ServiceClasses 1270 | 1271 | XCProjectFormatConflictsModule 1272 | 1273 | StatusbarIsVisible 1274 | 0 1275 | WindowContentMinSize 1276 | 450 300 1277 | WindowString 1278 | 50 850 472 307 0 0 1440 877 1279 | 1280 | 1281 | FirstTimeWindowDisplayed 1282 | 1283 | Identifier 1284 | windowTool.classBrowser 1285 | IsVertical 1286 | 1287 | Layout 1288 | 1289 | 1290 | Dock 1291 | 1292 | 1293 | ContentConfiguration 1294 | 1295 | OptionsSetName 1296 | Hierarchy, all classes 1297 | PBXProjectModuleGUID 1298 | 1CA6456E063B45B4001379D8 1299 | PBXProjectModuleLabel 1300 | Class Browser - NSObject 1301 | 1302 | GeometryConfiguration 1303 | 1304 | ClassesFrame 1305 | {{0, 0}, {378, 96}} 1306 | ClassesTreeTableConfiguration 1307 | 1308 | PBXClassNameColumnIdentifier 1309 | 208 1310 | PBXClassBookColumnIdentifier 1311 | 22 1312 | 1313 | Frame 1314 | {{0, 0}, {630, 332}} 1315 | MembersFrame 1316 | {{0, 101}, {378, 231}} 1317 | MembersTreeTableConfiguration 1318 | 1319 | PBXMemberTypeIconColumnIdentifier 1320 | 22 1321 | PBXMemberNameColumnIdentifier 1322 | 216 1323 | PBXMemberTypeColumnIdentifier 1324 | 101 1325 | PBXMemberBookColumnIdentifier 1326 | 22 1327 | 1328 | RubberWindowFrame 1329 | 21 653 630 352 0 0 1680 1028 1330 | 1331 | Module 1332 | PBXClassBrowserModule 1333 | Proportion 1334 | 332pt 1335 | 1336 | 1337 | Proportion 1338 | 332pt 1339 | 1340 | 1341 | Name 1342 | Class Browser 1343 | ServiceClasses 1344 | 1345 | PBXClassBrowserModule 1346 | 1347 | StatusbarIsVisible 1348 | 1349 | TableOfContents 1350 | 1351 | 1C0AD2AF069F1E9B00FABCE6 1352 | E26407D812D3A5DF005DA328 1353 | 1CA6456E063B45B4001379D8 1354 | 1355 | ToolbarConfiguration 1356 | xcode.toolbar.config.classbrowser 1357 | WindowString 1358 | 21 653 630 352 0 0 1680 1028 1359 | WindowToolGUID 1360 | 1C0AD2AF069F1E9B00FABCE6 1361 | WindowToolIsVisible 1362 | 1363 | 1364 | 1365 | Identifier 1366 | windowTool.refactoring 1367 | IncludeInToolsMenu 1368 | 0 1369 | Layout 1370 | 1371 | 1372 | Dock 1373 | 1374 | 1375 | BecomeActive 1376 | 1 1377 | GeometryConfiguration 1378 | 1379 | Frame 1380 | {0, 0}, {500, 335} 1381 | RubberWindowFrame 1382 | {0, 0}, {500, 335} 1383 | 1384 | Module 1385 | XCRefactoringModule 1386 | Proportion 1387 | 100% 1388 | 1389 | 1390 | Proportion 1391 | 100% 1392 | 1393 | 1394 | Name 1395 | Refactoring 1396 | ServiceClasses 1397 | 1398 | XCRefactoringModule 1399 | 1400 | WindowString 1401 | 200 200 500 356 0 0 1920 1200 1402 | 1403 | 1404 | 1405 | 1406 | -------------------------------------------------------------------------------- /ELCTextFieldCellDemo.xcodeproj/collinruffenach.pbxuser: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | 1D3623240D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.h */ = { 4 | uiCtxt = { 5 | sepNavIntBoundsRect = "{{0, 0}, {1407, 714}}"; 6 | sepNavSelRange = "{0, 0}"; 7 | sepNavVisRange = "{0, 508}"; 8 | }; 9 | }; 10 | 1D3623250D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.m */ = { 11 | uiCtxt = { 12 | sepNavIntBoundsRect = "{{0, 0}, {2753.5, 2002}}"; 13 | sepNavSelRange = "{0, 0}"; 14 | sepNavVisRange = "{0, 783}"; 15 | }; 16 | }; 17 | 1D6058900D05DD3D006BFB54 /* ELCTextFieldCellDemo */ = { 18 | activeExec = 0; 19 | executables = ( 20 | E26407C412D3A587005DA328 /* ELCTextFieldCellDemo */, 21 | ); 22 | }; 23 | 28C286DF0D94DF7D0034E888 /* RootViewController.h */ = { 24 | uiCtxt = { 25 | sepNavIntBoundsRect = "{{0, 0}, {1407, 691}}"; 26 | sepNavSelRange = "{291, 0}"; 27 | sepNavVisRange = "{0, 447}"; 28 | }; 29 | }; 30 | 28C286E00D94DF7D0034E888 /* RootViewController.m */ = { 31 | uiCtxt = { 32 | sepNavFolds = "{\n c = (\n {\n l = DetailViewController;\n r = \"{5101, 24}\";\n s = 1;\n },\n {\n l = DetailViewController;\n r = \"{5152, 24}\";\n s = 1;\n },\n {\n l = \"Nib name\";\n r = \"{5202, 12}\";\n s = 1;\n }\n );\n r = \"{0, 5898}\";\n s = 0;\n}"; 33 | sepNavIntBoundsRect = "{{0, 0}, {1407, 4862}}"; 34 | sepNavSelRange = "{1928, 0}"; 35 | sepNavVisRange = "{1197, 930}"; 36 | }; 37 | }; 38 | 29B97313FDCFA39411CA2CEA /* Project object */ = { 39 | activeBuildConfigurationName = Debug; 40 | activeExecutable = E26407C412D3A587005DA328 /* ELCTextFieldCellDemo */; 41 | activeTarget = 1D6058900D05DD3D006BFB54 /* ELCTextFieldCellDemo */; 42 | addToTargets = ( 43 | 1D6058900D05DD3D006BFB54 /* ELCTextFieldCellDemo */, 44 | ); 45 | breakpoints = ( 46 | E264082312D3A86E005DA328 /* RootViewController.m:156 */, 47 | ); 48 | codeSenseManager = E26407D412D3A589005DA328 /* Code sense */; 49 | executables = ( 50 | E26407C412D3A587005DA328 /* ELCTextFieldCellDemo */, 51 | ); 52 | perUserDictionary = { 53 | PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { 54 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; 55 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; 56 | PBXFileTableDataSourceColumnWidthsKey = ( 57 | 20, 58 | 1229, 59 | 20, 60 | 48.16259765625, 61 | 43, 62 | 43, 63 | 20, 64 | ); 65 | PBXFileTableDataSourceColumnsKey = ( 66 | PBXFileDataSource_FiletypeID, 67 | PBXFileDataSource_Filename_ColumnID, 68 | PBXFileDataSource_Built_ColumnID, 69 | PBXFileDataSource_ObjectSize_ColumnID, 70 | PBXFileDataSource_Errors_ColumnID, 71 | PBXFileDataSource_Warnings_ColumnID, 72 | PBXFileDataSource_Target_ColumnID, 73 | ); 74 | }; 75 | PBXPerProjectTemplateStateSaveDate = 315860359; 76 | PBXWorkspaceStateSaveDate = 315860359; 77 | }; 78 | perUserProjectItems = { 79 | E264082512D3A870005DA328 /* PBXTextBookmark */ = E264082512D3A870005DA328 /* PBXTextBookmark */; 80 | E264082612D3A870005DA328 /* PBXTextBookmark */ = E264082612D3A870005DA328 /* PBXTextBookmark */; 81 | E264082712D3A870005DA328 /* PBXTextBookmark */ = E264082712D3A870005DA328 /* PBXTextBookmark */; 82 | E264082812D3A870005DA328 /* PBXTextBookmark */ = E264082812D3A870005DA328 /* PBXTextBookmark */; 83 | E264082912D3A870005DA328 /* PBXTextBookmark */ = E264082912D3A870005DA328 /* PBXTextBookmark */; 84 | E264084212D3A8C9005DA328 /* PBXTextBookmark */ = E264084212D3A8C9005DA328 /* PBXTextBookmark */; 85 | E264084312D3A8C9005DA328 /* PBXTextBookmark */ = E264084312D3A8C9005DA328 /* PBXTextBookmark */; 86 | E264084412D3A8C9005DA328 /* PBXTextBookmark */ = E264084412D3A8C9005DA328 /* PBXTextBookmark */; 87 | E264084512D3A8C9005DA328 /* PBXTextBookmark */ = E264084512D3A8C9005DA328 /* PBXTextBookmark */; 88 | }; 89 | sourceControlManager = E26407D312D3A589005DA328 /* Source Control */; 90 | userBuildSettings = { 91 | }; 92 | }; 93 | E26407C412D3A587005DA328 /* ELCTextFieldCellDemo */ = { 94 | isa = PBXExecutable; 95 | activeArgIndices = ( 96 | ); 97 | argumentStrings = ( 98 | ); 99 | autoAttachOnCrash = 1; 100 | breakpointsEnabled = 0; 101 | configStateDict = { 102 | }; 103 | customDataFormattersEnabled = 1; 104 | dataTipCustomDataFormattersEnabled = 1; 105 | dataTipShowTypeColumn = 1; 106 | dataTipSortType = 0; 107 | debuggerPlugin = GDBDebugging; 108 | disassemblyDisplayState = 0; 109 | dylibVariantSuffix = ""; 110 | enableDebugStr = 1; 111 | environmentEntries = ( 112 | ); 113 | executableSystemSymbolLevel = 0; 114 | executableUserSymbolLevel = 0; 115 | libgmallocEnabled = 0; 116 | name = ELCTextFieldCellDemo; 117 | savedGlobals = { 118 | }; 119 | showTypeColumn = 0; 120 | sourceDirectories = ( 121 | ); 122 | }; 123 | E26407D312D3A589005DA328 /* Source Control */ = { 124 | isa = PBXSourceControlManager; 125 | fallbackIsa = XCSourceControlManager; 126 | isSCMEnabled = 0; 127 | scmConfiguration = { 128 | repositoryNamesForRoots = { 129 | "" = ""; 130 | }; 131 | }; 132 | }; 133 | E26407D412D3A589005DA328 /* Code sense */ = { 134 | isa = PBXCodeSenseManager; 135 | indexTemplatePath = ""; 136 | }; 137 | E26407D612D3A5AF005DA328 /* ELCTextfieldCell.m */ = { 138 | uiCtxt = { 139 | sepNavIntBoundsRect = "{{0, 0}, {1554.71, 2420}}"; 140 | sepNavSelRange = "{2277, 0}"; 141 | sepNavVisRange = "{178, 1120}"; 142 | }; 143 | }; 144 | E264082312D3A86E005DA328 /* RootViewController.m:156 */ = { 145 | isa = PBXFileBreakpoint; 146 | actions = ( 147 | ); 148 | breakpointStyle = 0; 149 | continueAfterActions = 0; 150 | countType = 0; 151 | delayBeforeContinue = 0; 152 | fileReference = 28C286E00D94DF7D0034E888 /* RootViewController.m */; 153 | functionName = "-textFieldDidReturnWithIndexPath:"; 154 | hitCount = 0; 155 | ignoreCount = 0; 156 | lineNumber = 156; 157 | location = ELCTextFieldCellDemo; 158 | modificationTime = 315861102.66849; 159 | originalNumberOfMultipleMatches = 1; 160 | state = 1; 161 | }; 162 | E264082512D3A870005DA328 /* PBXTextBookmark */ = { 163 | isa = PBXTextBookmark; 164 | fRef = 1D3623240D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.h */; 165 | name = "ELCTextFieldCellDemoAppDelegate.h: 1"; 166 | rLen = 0; 167 | rLoc = 0; 168 | rType = 0; 169 | vrLen = 508; 170 | vrLoc = 0; 171 | }; 172 | E264082612D3A870005DA328 /* PBXTextBookmark */ = { 173 | isa = PBXTextBookmark; 174 | fRef = 1D3623250D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.m */; 175 | name = "ELCTextFieldCellDemoAppDelegate.m: 1"; 176 | rLen = 0; 177 | rLoc = 0; 178 | rType = 0; 179 | vrLen = 783; 180 | vrLoc = 0; 181 | }; 182 | E264082712D3A870005DA328 /* PBXTextBookmark */ = { 183 | isa = PBXTextBookmark; 184 | fRef = 28C286DF0D94DF7D0034E888 /* RootViewController.h */; 185 | name = "RootViewController.h: 12"; 186 | rLen = 0; 187 | rLoc = 291; 188 | rType = 0; 189 | vrLen = 447; 190 | vrLoc = 0; 191 | }; 192 | E264082812D3A870005DA328 /* PBXTextBookmark */ = { 193 | isa = PBXTextBookmark; 194 | fRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; 195 | name = "RootViewController.m: 159"; 196 | rLen = 0; 197 | rLoc = 4681; 198 | rType = 0; 199 | vrLen = 1079; 200 | vrLoc = 3785; 201 | }; 202 | E264082912D3A870005DA328 /* PBXTextBookmark */ = { 203 | isa = PBXTextBookmark; 204 | fRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; 205 | name = "RootViewController.m: 159"; 206 | rLen = 0; 207 | rLoc = 4681; 208 | rType = 0; 209 | vrLen = 1079; 210 | vrLoc = 3785; 211 | }; 212 | E264084212D3A8C9005DA328 /* PBXTextBookmark */ = { 213 | isa = PBXTextBookmark; 214 | fRef = 28C286DF0D94DF7D0034E888 /* RootViewController.h */; 215 | name = "RootViewController.h: 12"; 216 | rLen = 0; 217 | rLoc = 291; 218 | rType = 0; 219 | vrLen = 447; 220 | vrLoc = 0; 221 | }; 222 | E264084312D3A8C9005DA328 /* PBXTextBookmark */ = { 223 | isa = PBXTextBookmark; 224 | fRef = E26407D612D3A5AF005DA328 /* ELCTextfieldCell.m */; 225 | name = "ELCTextfieldCell.m: 68"; 226 | rLen = 0; 227 | rLoc = 2277; 228 | rType = 0; 229 | vrLen = 1120; 230 | vrLoc = 178; 231 | }; 232 | E264084412D3A8C9005DA328 /* PBXTextBookmark */ = { 233 | isa = PBXTextBookmark; 234 | fRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; 235 | name = "RootViewController.m: 159"; 236 | rLen = 0; 237 | rLoc = 4681; 238 | rType = 0; 239 | vrLen = 1079; 240 | vrLoc = 3785; 241 | }; 242 | E264084512D3A8C9005DA328 /* PBXTextBookmark */ = { 243 | isa = PBXTextBookmark; 244 | fRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; 245 | name = "RootViewController.m: 81"; 246 | rLen = 0; 247 | rLoc = 1928; 248 | rType = 0; 249 | vrLen = 930; 250 | vrLoc = 1197; 251 | }; 252 | } 253 | -------------------------------------------------------------------------------- /ELCTextFieldCellDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 45; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1A530DD01672B359008DEBE3 /* ELCTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A530DCF1672B359008DEBE3 /* ELCTextFieldCell.m */; }; 11 | 1D3623260D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.m */; }; 12 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; 13 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 14 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; 15 | 2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */; }; 16 | 28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD735F0D9D9599002E5188 /* MainWindow.xib */; }; 17 | 28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; }; 18 | 28F335F11007B36200424DE2 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28F335F01007B36200424DE2 /* RootViewController.xib */; }; 19 | /* End PBXBuildFile section */ 20 | 21 | /* Begin PBXFileReference section */ 22 | 1A530DCF1672B359008DEBE3 /* ELCTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ELCTextFieldCell.m; sourceTree = ""; }; 23 | 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 24 | 1D3623240D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ELCTextFieldCellDemoAppDelegate.h; sourceTree = ""; }; 25 | 1D3623250D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ELCTextFieldCellDemoAppDelegate.m; sourceTree = ""; }; 26 | 1D6058910D05DD3D006BFB54 /* ELCTextFieldCellDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ELCTextFieldCellDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 27 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 28 | 2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 29 | 28A0AAE50D9B0CCF005BE974 /* ELCTextFieldCellDemo_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ELCTextFieldCellDemo_Prefix.pch; sourceTree = ""; }; 30 | 28AD735F0D9D9599002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; 31 | 28C286DF0D94DF7D0034E888 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = ""; }; 32 | 28C286E00D94DF7D0034E888 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = ""; }; 33 | 28F335F01007B36200424DE2 /* RootViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = ""; }; 34 | 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 35 | 8D1107310486CEB800E47090 /* ELCTextFieldCellDemo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "ELCTextFieldCellDemo-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; 36 | E26407D512D3A5AF005DA328 /* ELCTextFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ELCTextFieldCell.h; sourceTree = ""; }; 37 | /* End PBXFileReference section */ 38 | 39 | /* Begin PBXFrameworksBuildPhase section */ 40 | 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { 41 | isa = PBXFrameworksBuildPhase; 42 | buildActionMask = 2147483647; 43 | files = ( 44 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 45 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, 46 | 2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */, 47 | ); 48 | runOnlyForDeploymentPostprocessing = 0; 49 | }; 50 | /* End PBXFrameworksBuildPhase section */ 51 | 52 | /* Begin PBXGroup section */ 53 | 080E96DDFE201D6D7F000001 /* Classes */ = { 54 | isa = PBXGroup; 55 | children = ( 56 | E26407D512D3A5AF005DA328 /* ELCTextFieldCell.h */, 57 | 1A530DCF1672B359008DEBE3 /* ELCTextFieldCell.m */, 58 | 1D3623240D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.h */, 59 | 1D3623250D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.m */, 60 | 28C286DF0D94DF7D0034E888 /* RootViewController.h */, 61 | 28C286E00D94DF7D0034E888 /* RootViewController.m */, 62 | ); 63 | path = Classes; 64 | sourceTree = ""; 65 | }; 66 | 19C28FACFE9D520D11CA2CBB /* Products */ = { 67 | isa = PBXGroup; 68 | children = ( 69 | 1D6058910D05DD3D006BFB54 /* ELCTextFieldCellDemo.app */, 70 | ); 71 | name = Products; 72 | sourceTree = ""; 73 | }; 74 | 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | 080E96DDFE201D6D7F000001 /* Classes */, 78 | 29B97315FDCFA39411CA2CEA /* Other Sources */, 79 | 29B97317FDCFA39411CA2CEA /* Resources */, 80 | 29B97323FDCFA39411CA2CEA /* Frameworks */, 81 | 19C28FACFE9D520D11CA2CBB /* Products */, 82 | ); 83 | name = CustomTemplate; 84 | sourceTree = ""; 85 | }; 86 | 29B97315FDCFA39411CA2CEA /* Other Sources */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 28A0AAE50D9B0CCF005BE974 /* ELCTextFieldCellDemo_Prefix.pch */, 90 | 29B97316FDCFA39411CA2CEA /* main.m */, 91 | ); 92 | name = "Other Sources"; 93 | sourceTree = ""; 94 | }; 95 | 29B97317FDCFA39411CA2CEA /* Resources */ = { 96 | isa = PBXGroup; 97 | children = ( 98 | 28F335F01007B36200424DE2 /* RootViewController.xib */, 99 | 28AD735F0D9D9599002E5188 /* MainWindow.xib */, 100 | 8D1107310486CEB800E47090 /* ELCTextFieldCellDemo-Info.plist */, 101 | ); 102 | name = Resources; 103 | sourceTree = ""; 104 | }; 105 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = { 106 | isa = PBXGroup; 107 | children = ( 108 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, 109 | 1D30AB110D05D00D00671497 /* Foundation.framework */, 110 | 2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */, 111 | ); 112 | name = Frameworks; 113 | sourceTree = ""; 114 | }; 115 | /* End PBXGroup section */ 116 | 117 | /* Begin PBXNativeTarget section */ 118 | 1D6058900D05DD3D006BFB54 /* ELCTextFieldCellDemo */ = { 119 | isa = PBXNativeTarget; 120 | buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "ELCTextFieldCellDemo" */; 121 | buildPhases = ( 122 | 1D60588D0D05DD3D006BFB54 /* Resources */, 123 | 1D60588E0D05DD3D006BFB54 /* Sources */, 124 | 1D60588F0D05DD3D006BFB54 /* Frameworks */, 125 | ); 126 | buildRules = ( 127 | ); 128 | dependencies = ( 129 | ); 130 | name = ELCTextFieldCellDemo; 131 | productName = ELCTextFieldCellDemo; 132 | productReference = 1D6058910D05DD3D006BFB54 /* ELCTextFieldCellDemo.app */; 133 | productType = "com.apple.product-type.application"; 134 | }; 135 | /* End PBXNativeTarget section */ 136 | 137 | /* Begin PBXProject section */ 138 | 29B97313FDCFA39411CA2CEA /* Project object */ = { 139 | isa = PBXProject; 140 | attributes = { 141 | }; 142 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ELCTextFieldCellDemo" */; 143 | compatibilityVersion = "Xcode 3.1"; 144 | developmentRegion = English; 145 | hasScannedForEncodings = 1; 146 | knownRegions = ( 147 | English, 148 | Japanese, 149 | French, 150 | German, 151 | en, 152 | ); 153 | mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; 154 | projectDirPath = ""; 155 | projectRoot = ""; 156 | targets = ( 157 | 1D6058900D05DD3D006BFB54 /* ELCTextFieldCellDemo */, 158 | ); 159 | }; 160 | /* End PBXProject section */ 161 | 162 | /* Begin PBXResourcesBuildPhase section */ 163 | 1D60588D0D05DD3D006BFB54 /* Resources */ = { 164 | isa = PBXResourcesBuildPhase; 165 | buildActionMask = 2147483647; 166 | files = ( 167 | 28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */, 168 | 28F335F11007B36200424DE2 /* RootViewController.xib in Resources */, 169 | ); 170 | runOnlyForDeploymentPostprocessing = 0; 171 | }; 172 | /* End PBXResourcesBuildPhase section */ 173 | 174 | /* Begin PBXSourcesBuildPhase section */ 175 | 1D60588E0D05DD3D006BFB54 /* Sources */ = { 176 | isa = PBXSourcesBuildPhase; 177 | buildActionMask = 2147483647; 178 | files = ( 179 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */, 180 | 1D3623260D0F684500981E51 /* ELCTextFieldCellDemoAppDelegate.m in Sources */, 181 | 28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */, 182 | 1A530DD01672B359008DEBE3 /* ELCTextFieldCell.m in Sources */, 183 | ); 184 | runOnlyForDeploymentPostprocessing = 0; 185 | }; 186 | /* End PBXSourcesBuildPhase section */ 187 | 188 | /* Begin XCBuildConfiguration section */ 189 | 1D6058940D05DD3E006BFB54 /* Debug */ = { 190 | isa = XCBuildConfiguration; 191 | buildSettings = { 192 | ALWAYS_SEARCH_USER_PATHS = NO; 193 | CLANG_ENABLE_OBJC_ARC = YES; 194 | COPY_PHASE_STRIP = NO; 195 | GCC_DYNAMIC_NO_PIC = NO; 196 | GCC_OPTIMIZATION_LEVEL = 0; 197 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 198 | GCC_PREFIX_HEADER = ELCTextFieldCellDemo_Prefix.pch; 199 | INFOPLIST_FILE = "ELCTextFieldCellDemo-Info.plist"; 200 | PRODUCT_NAME = ELCTextFieldCellDemo; 201 | }; 202 | name = Debug; 203 | }; 204 | 1D6058950D05DD3E006BFB54 /* Release */ = { 205 | isa = XCBuildConfiguration; 206 | buildSettings = { 207 | ALWAYS_SEARCH_USER_PATHS = NO; 208 | CLANG_ENABLE_OBJC_ARC = YES; 209 | COPY_PHASE_STRIP = YES; 210 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 211 | GCC_PREFIX_HEADER = ELCTextFieldCellDemo_Prefix.pch; 212 | INFOPLIST_FILE = "ELCTextFieldCellDemo-Info.plist"; 213 | PRODUCT_NAME = ELCTextFieldCellDemo; 214 | VALIDATE_PRODUCT = YES; 215 | }; 216 | name = Release; 217 | }; 218 | C01FCF4F08A954540054247B /* Debug */ = { 219 | isa = XCBuildConfiguration; 220 | buildSettings = { 221 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 222 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 223 | GCC_C_LANGUAGE_STANDARD = c99; 224 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 225 | GCC_WARN_UNUSED_VARIABLE = YES; 226 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 227 | PREBINDING = NO; 228 | SDKROOT = iphoneos; 229 | }; 230 | name = Debug; 231 | }; 232 | C01FCF5008A954540054247B /* Release */ = { 233 | isa = XCBuildConfiguration; 234 | buildSettings = { 235 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 236 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 237 | GCC_C_LANGUAGE_STANDARD = c99; 238 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 239 | GCC_WARN_UNUSED_VARIABLE = YES; 240 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 241 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 242 | PREBINDING = NO; 243 | SDKROOT = iphoneos; 244 | }; 245 | name = Release; 246 | }; 247 | /* End XCBuildConfiguration section */ 248 | 249 | /* Begin XCConfigurationList section */ 250 | 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "ELCTextFieldCellDemo" */ = { 251 | isa = XCConfigurationList; 252 | buildConfigurations = ( 253 | 1D6058940D05DD3E006BFB54 /* Debug */, 254 | 1D6058950D05DD3E006BFB54 /* Release */, 255 | ); 256 | defaultConfigurationIsVisible = 0; 257 | defaultConfigurationName = Release; 258 | }; 259 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ELCTextFieldCellDemo" */ = { 260 | isa = XCConfigurationList; 261 | buildConfigurations = ( 262 | C01FCF4F08A954540054247B /* Debug */, 263 | C01FCF5008A954540054247B /* Release */, 264 | ); 265 | defaultConfigurationIsVisible = 0; 266 | defaultConfigurationName = Release; 267 | }; 268 | /* End XCConfigurationList section */ 269 | }; 270 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; 271 | } 272 | -------------------------------------------------------------------------------- /ELCTextFieldCellDemo_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'ELCTextFieldCellDemo' target in the 'ELCTextFieldCellDemo' project 3 | // 4 | #import 5 | 6 | #ifndef __IPHONE_3_0 7 | #warning "This project uses features only available in iPhone SDK 3.0 and later." 8 | #endif 9 | 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | -------------------------------------------------------------------------------- /MainWindow.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1024 5 | 10D571 6 | 786 7 | 1038.29 8 | 460.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 112 12 | 13 | 14 | YES 15 | 16 | 17 | 18 | YES 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | YES 23 | 24 | YES 25 | 26 | 27 | YES 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | IBCocoaTouchFramework 42 | 43 | 44 | 45 | 1316 46 | 47 | {320, 480} 48 | 49 | 1 50 | MSAxIDEAA 51 | 52 | NO 53 | NO 54 | 55 | IBCocoaTouchFramework 56 | YES 57 | 58 | 59 | 60 | 61 | 1 62 | 63 | IBCocoaTouchFramework 64 | NO 65 | 66 | 67 | 256 68 | {0, 0} 69 | NO 70 | YES 71 | YES 72 | IBCocoaTouchFramework 73 | 74 | 75 | YES 76 | 77 | 78 | 79 | IBCocoaTouchFramework 80 | 81 | 82 | RootViewController 83 | 84 | 85 | 1 86 | 87 | IBCocoaTouchFramework 88 | NO 89 | 90 | 91 | 92 | 93 | 94 | 95 | YES 96 | 97 | 98 | delegate 99 | 100 | 101 | 102 | 4 103 | 104 | 105 | 106 | window 107 | 108 | 109 | 110 | 5 111 | 112 | 113 | 114 | navigationController 115 | 116 | 117 | 118 | 15 119 | 120 | 121 | 122 | 123 | YES 124 | 125 | 0 126 | 127 | 128 | 129 | 130 | 131 | 2 132 | 133 | 134 | YES 135 | 136 | 137 | 138 | 139 | -1 140 | 141 | 142 | File's Owner 143 | 144 | 145 | 3 146 | 147 | 148 | 149 | 150 | -2 151 | 152 | 153 | 154 | 155 | 9 156 | 157 | 158 | YES 159 | 160 | 161 | 162 | 163 | 164 | 165 | 11 166 | 167 | 168 | 169 | 170 | 13 171 | 172 | 173 | YES 174 | 175 | 176 | 177 | 178 | 179 | 14 180 | 181 | 182 | 183 | 184 | 185 | 186 | YES 187 | 188 | YES 189 | -1.CustomClassName 190 | -2.CustomClassName 191 | 11.IBPluginDependency 192 | 13.CustomClassName 193 | 13.IBPluginDependency 194 | 2.IBAttributePlaceholdersKey 195 | 2.IBEditorWindowLastContentRect 196 | 2.IBPluginDependency 197 | 3.CustomClassName 198 | 3.IBPluginDependency 199 | 9.IBEditorWindowLastContentRect 200 | 9.IBPluginDependency 201 | 202 | 203 | YES 204 | UIApplication 205 | UIResponder 206 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 207 | RootViewController 208 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 209 | 210 | YES 211 | 212 | 213 | YES 214 | 215 | 216 | {{673, 376}, {320, 480}} 217 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 218 | ELCTextFieldCellDemoAppDelegate 219 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 220 | {{186, 376}, {320, 480}} 221 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 222 | 223 | 224 | 225 | YES 226 | 227 | 228 | YES 229 | 230 | 231 | 232 | 233 | YES 234 | 235 | 236 | YES 237 | 238 | 239 | 240 | 16 241 | 242 | 243 | 244 | YES 245 | 246 | RootViewController 247 | UITableViewController 248 | 249 | IBProjectSource 250 | Classes/RootViewController.h 251 | 252 | 253 | 254 | UIWindow 255 | UIView 256 | 257 | IBUserSource 258 | 259 | 260 | 261 | 262 | ELCTextFieldCellDemoAppDelegate 263 | NSObject 264 | 265 | YES 266 | 267 | YES 268 | navigationController 269 | window 270 | 271 | 272 | YES 273 | UINavigationController 274 | UIWindow 275 | 276 | 277 | 278 | YES 279 | 280 | YES 281 | navigationController 282 | window 283 | 284 | 285 | YES 286 | 287 | navigationController 288 | UINavigationController 289 | 290 | 291 | window 292 | UIWindow 293 | 294 | 295 | 296 | 297 | IBProjectSource 298 | Classes/ELCTextFieldCellDemoAppDelegate.h 299 | 300 | 301 | 302 | 303 | YES 304 | 305 | NSObject 306 | 307 | IBFrameworkSource 308 | Foundation.framework/Headers/NSError.h 309 | 310 | 311 | 312 | NSObject 313 | 314 | IBFrameworkSource 315 | Foundation.framework/Headers/NSFileManager.h 316 | 317 | 318 | 319 | NSObject 320 | 321 | IBFrameworkSource 322 | Foundation.framework/Headers/NSKeyValueCoding.h 323 | 324 | 325 | 326 | NSObject 327 | 328 | IBFrameworkSource 329 | Foundation.framework/Headers/NSKeyValueObserving.h 330 | 331 | 332 | 333 | NSObject 334 | 335 | IBFrameworkSource 336 | Foundation.framework/Headers/NSKeyedArchiver.h 337 | 338 | 339 | 340 | NSObject 341 | 342 | IBFrameworkSource 343 | Foundation.framework/Headers/NSObject.h 344 | 345 | 346 | 347 | NSObject 348 | 349 | IBFrameworkSource 350 | Foundation.framework/Headers/NSRunLoop.h 351 | 352 | 353 | 354 | NSObject 355 | 356 | IBFrameworkSource 357 | Foundation.framework/Headers/NSThread.h 358 | 359 | 360 | 361 | NSObject 362 | 363 | IBFrameworkSource 364 | Foundation.framework/Headers/NSURL.h 365 | 366 | 367 | 368 | NSObject 369 | 370 | IBFrameworkSource 371 | Foundation.framework/Headers/NSURLConnection.h 372 | 373 | 374 | 375 | NSObject 376 | 377 | IBFrameworkSource 378 | UIKit.framework/Headers/UIAccessibility.h 379 | 380 | 381 | 382 | NSObject 383 | 384 | IBFrameworkSource 385 | UIKit.framework/Headers/UINibLoading.h 386 | 387 | 388 | 389 | NSObject 390 | 391 | IBFrameworkSource 392 | UIKit.framework/Headers/UIResponder.h 393 | 394 | 395 | 396 | UIApplication 397 | UIResponder 398 | 399 | IBFrameworkSource 400 | UIKit.framework/Headers/UIApplication.h 401 | 402 | 403 | 404 | UIBarButtonItem 405 | UIBarItem 406 | 407 | IBFrameworkSource 408 | UIKit.framework/Headers/UIBarButtonItem.h 409 | 410 | 411 | 412 | UIBarItem 413 | NSObject 414 | 415 | IBFrameworkSource 416 | UIKit.framework/Headers/UIBarItem.h 417 | 418 | 419 | 420 | UINavigationBar 421 | UIView 422 | 423 | IBFrameworkSource 424 | UIKit.framework/Headers/UINavigationBar.h 425 | 426 | 427 | 428 | UINavigationController 429 | UIViewController 430 | 431 | IBFrameworkSource 432 | UIKit.framework/Headers/UINavigationController.h 433 | 434 | 435 | 436 | UINavigationItem 437 | NSObject 438 | 439 | 440 | 441 | UIResponder 442 | NSObject 443 | 444 | 445 | 446 | UISearchBar 447 | UIView 448 | 449 | IBFrameworkSource 450 | UIKit.framework/Headers/UISearchBar.h 451 | 452 | 453 | 454 | UISearchDisplayController 455 | NSObject 456 | 457 | IBFrameworkSource 458 | UIKit.framework/Headers/UISearchDisplayController.h 459 | 460 | 461 | 462 | UITableViewController 463 | UIViewController 464 | 465 | IBFrameworkSource 466 | UIKit.framework/Headers/UITableViewController.h 467 | 468 | 469 | 470 | UIView 471 | 472 | IBFrameworkSource 473 | UIKit.framework/Headers/UITextField.h 474 | 475 | 476 | 477 | UIView 478 | UIResponder 479 | 480 | IBFrameworkSource 481 | UIKit.framework/Headers/UIView.h 482 | 483 | 484 | 485 | UIViewController 486 | 487 | 488 | 489 | UIViewController 490 | 491 | IBFrameworkSource 492 | UIKit.framework/Headers/UIPopoverController.h 493 | 494 | 495 | 496 | UIViewController 497 | 498 | IBFrameworkSource 499 | UIKit.framework/Headers/UISplitViewController.h 500 | 501 | 502 | 503 | UIViewController 504 | 505 | IBFrameworkSource 506 | UIKit.framework/Headers/UITabBarController.h 507 | 508 | 509 | 510 | UIViewController 511 | UIResponder 512 | 513 | IBFrameworkSource 514 | UIKit.framework/Headers/UIViewController.h 515 | 516 | 517 | 518 | UIWindow 519 | UIView 520 | 521 | IBFrameworkSource 522 | UIKit.framework/Headers/UIWindow.h 523 | 524 | 525 | 526 | 527 | 0 528 | IBCocoaTouchFramework 529 | 530 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 531 | 532 | 533 | 534 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 535 | 536 | 537 | YES 538 | ELCTextFieldCellDemo.xcodeproj 539 | 3 540 | 112 541 | 542 | 543 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | ****** HOW TO USE ****** 2 | 3 | This UITableViewCell subclass is most commonly used for the creation of forms. There is a leftLabel and a rightTextField in each cell. You should configure the labels text and the textfields placeholder appropriately. The cell defines a protocol called ELCTextFieldDelegate which has 6 optional methods. 4 | 5 | The two most used are: 6 | 7 | //Called to the delegate whenever the text in the rightTextField is changed 8 | - (void)textFieldCell:(ELCTextFieldCell *)inCell updateTextLabelAtIndexPath:(NSIndexPath *)inIndexPath string:(NSString *)inValue; 9 | 10 | //Called to the delegate whenever return is hit when a user is typing into the rightTextField of an ELCTextFieldCell 11 | - (BOOL)textFieldCell:(ELCTextFieldCell *)inCell shouldReturnForIndexPath:(NSIndexPath*)inIndexPath withValue:(NSString *)inValue; 12 | 13 | The other four just forward on the UITextFieldDelegate methods, if the ELCTextFieldCellDelegate implements them. 14 | - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; 15 | - (BOOL)textFieldShouldEndEditing:(UITextField *)textField; 16 | - (void)textFieldDidBeginEditing:(UITextField *)textField; 17 | - (void)textFieldDidEndEditing:(UITextField *)textField; 18 | 19 | ************************ 20 | 21 | The MIT License 22 | 23 | Copyright (c) 2012 ELC Technologies 24 | 25 | Permission is hereby granted, free of charge, to any person obtaining a copy 26 | of this software and associated documentation files (the "Software"), to deal 27 | in the Software without restriction, including without limitation the rights 28 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 29 | copies of the Software, and to permit persons to whom the Software is 30 | furnished to do so, subject to the following conditions: 31 | 32 | The above copyright notice and this permission notice shall be included in 33 | all copies or substantial portions of the Software. 34 | 35 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 36 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 37 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 38 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 39 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 40 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 41 | THE SOFTWARE. -------------------------------------------------------------------------------- /RootViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 784 5 | 10D541 6 | 760 7 | 1038.29 8 | 460.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 81 12 | 13 | 14 | YES 15 | 16 | 17 | 18 | YES 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | YES 23 | 24 | YES 25 | 26 | 27 | YES 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | 42 | 274 43 | {320, 247} 44 | 45 | 46 | 3 47 | MQA 48 | 49 | NO 50 | YES 51 | NO 52 | IBCocoaTouchFramework 53 | NO 54 | 1 55 | 0 56 | YES 57 | 44 58 | 22 59 | 22 60 | 61 | 62 | 63 | 64 | YES 65 | 66 | 67 | view 68 | 69 | 70 | 71 | 3 72 | 73 | 74 | 75 | dataSource 76 | 77 | 78 | 79 | 4 80 | 81 | 82 | 83 | delegate 84 | 85 | 86 | 87 | 5 88 | 89 | 90 | 91 | 92 | YES 93 | 94 | 0 95 | 96 | 97 | 98 | 99 | 100 | -1 101 | 102 | 103 | File's Owner 104 | 105 | 106 | -2 107 | 108 | 109 | 110 | 111 | 2 112 | 113 | 114 | 115 | 116 | 117 | 118 | YES 119 | 120 | YES 121 | -1.CustomClassName 122 | -2.CustomClassName 123 | 2.IBEditorWindowLastContentRect 124 | 2.IBPluginDependency 125 | 126 | 127 | YES 128 | RootViewController 129 | UIResponder 130 | {{144, 609}, {320, 247}} 131 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 132 | 133 | 134 | 135 | YES 136 | 137 | 138 | YES 139 | 140 | 141 | 142 | 143 | YES 144 | 145 | 146 | YES 147 | 148 | 149 | 150 | 5 151 | 152 | 153 | 154 | YES 155 | 156 | RootViewController 157 | UITableViewController 158 | 159 | IBProjectSource 160 | Classes/RootViewController.h 161 | 162 | 163 | 164 | 165 | YES 166 | 167 | NSObject 168 | 169 | IBFrameworkSource 170 | Foundation.framework/Headers/NSError.h 171 | 172 | 173 | 174 | NSObject 175 | 176 | IBFrameworkSource 177 | Foundation.framework/Headers/NSFileManager.h 178 | 179 | 180 | 181 | NSObject 182 | 183 | IBFrameworkSource 184 | Foundation.framework/Headers/NSKeyValueCoding.h 185 | 186 | 187 | 188 | NSObject 189 | 190 | IBFrameworkSource 191 | Foundation.framework/Headers/NSKeyValueObserving.h 192 | 193 | 194 | 195 | NSObject 196 | 197 | IBFrameworkSource 198 | Foundation.framework/Headers/NSKeyedArchiver.h 199 | 200 | 201 | 202 | NSObject 203 | 204 | IBFrameworkSource 205 | Foundation.framework/Headers/NSNetServices.h 206 | 207 | 208 | 209 | NSObject 210 | 211 | IBFrameworkSource 212 | Foundation.framework/Headers/NSObject.h 213 | 214 | 215 | 216 | NSObject 217 | 218 | IBFrameworkSource 219 | Foundation.framework/Headers/NSPort.h 220 | 221 | 222 | 223 | NSObject 224 | 225 | IBFrameworkSource 226 | Foundation.framework/Headers/NSRunLoop.h 227 | 228 | 229 | 230 | NSObject 231 | 232 | IBFrameworkSource 233 | Foundation.framework/Headers/NSStream.h 234 | 235 | 236 | 237 | NSObject 238 | 239 | IBFrameworkSource 240 | Foundation.framework/Headers/NSThread.h 241 | 242 | 243 | 244 | NSObject 245 | 246 | IBFrameworkSource 247 | Foundation.framework/Headers/NSURL.h 248 | 249 | 250 | 251 | NSObject 252 | 253 | IBFrameworkSource 254 | Foundation.framework/Headers/NSURLConnection.h 255 | 256 | 257 | 258 | NSObject 259 | 260 | IBFrameworkSource 261 | Foundation.framework/Headers/NSXMLParser.h 262 | 263 | 264 | 265 | NSObject 266 | 267 | IBFrameworkSource 268 | UIKit.framework/Headers/UIAccessibility.h 269 | 270 | 271 | 272 | NSObject 273 | 274 | IBFrameworkSource 275 | UIKit.framework/Headers/UINibLoading.h 276 | 277 | 278 | 279 | NSObject 280 | 281 | IBFrameworkSource 282 | UIKit.framework/Headers/UIResponder.h 283 | 284 | 285 | 286 | UIResponder 287 | NSObject 288 | 289 | 290 | 291 | UIScrollView 292 | UIView 293 | 294 | IBFrameworkSource 295 | UIKit.framework/Headers/UIScrollView.h 296 | 297 | 298 | 299 | UISearchBar 300 | UIView 301 | 302 | IBFrameworkSource 303 | UIKit.framework/Headers/UISearchBar.h 304 | 305 | 306 | 307 | UISearchDisplayController 308 | NSObject 309 | 310 | IBFrameworkSource 311 | UIKit.framework/Headers/UISearchDisplayController.h 312 | 313 | 314 | 315 | UITableView 316 | UIScrollView 317 | 318 | IBFrameworkSource 319 | UIKit.framework/Headers/UITableView.h 320 | 321 | 322 | 323 | UITableViewController 324 | UIViewController 325 | 326 | IBFrameworkSource 327 | UIKit.framework/Headers/UITableViewController.h 328 | 329 | 330 | 331 | UIView 332 | 333 | IBFrameworkSource 334 | UIKit.framework/Headers/UITextField.h 335 | 336 | 337 | 338 | UIView 339 | UIResponder 340 | 341 | IBFrameworkSource 342 | UIKit.framework/Headers/UIView.h 343 | 344 | 345 | 346 | UIViewController 347 | 348 | IBFrameworkSource 349 | UIKit.framework/Headers/UINavigationController.h 350 | 351 | 352 | 353 | UIViewController 354 | 355 | IBFrameworkSource 356 | UIKit.framework/Headers/UITabBarController.h 357 | 358 | 359 | 360 | UIViewController 361 | UIResponder 362 | 363 | IBFrameworkSource 364 | UIKit.framework/Headers/UIViewController.h 365 | 366 | 367 | 368 | 369 | 0 370 | IBCocoaTouchFramework 371 | 372 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 373 | 374 | 375 | 376 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 377 | 378 | 379 | YES 380 | ELCTextFieldCellDemo.xcodeproj 381 | 3 382 | 81 383 | 384 | 385 | -------------------------------------------------------------------------------- /main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ELCTextFieldCellDemo 4 | // 5 | // Created by Collin Ruffenach on 1/4/11. 6 | // Copyright 2011 ELC Technologies. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) { 12 | 13 | @autoreleasepool { 14 | int retVal = UIApplicationMain(argc, argv, nil, nil); 15 | return retVal; 16 | } 17 | } 18 | --------------------------------------------------------------------------------