├── AMTextFieldNumberPad.bundle ├── button_keyboard3.png ├── button_keyboard3_highlighted.png ├── button_keyboard4.png ├── button_keyboard4@2x.png ├── button_keyboard4_highlighted.png ├── button_keyboard4_highlighted@2x.png ├── button_keyboard4_transparent.png ├── button_keyboard4_transparent@2x.png ├── button_keyboard4_transparent_highlighted.png ├── button_keyboard4_transparent_highlighted@2x.png ├── button_keyboard_icon.png ├── button_keyboard_icon@2x.png ├── button_keyboard_icon_highlighted.png ├── button_keyboard_icon_highlighted@2x.png ├── button_keyboard_icon_transparent.png ├── button_keyboard_icon_transparent@2x.png ├── button_keyboard_icon_transparent_highlighted.png └── button_keyboard_icon_transparent_highlighted@2x.png ├── AMTextFieldNumberPad.h ├── AMTextFieldNumberPad.m ├── Demo ├── Classes │ ├── KeyboardNumberPadAppDelegate.h │ ├── KeyboardNumberPadAppDelegate.m │ ├── KeyboardNumberPadViewController.h │ └── KeyboardNumberPadViewController.m ├── KeyboardNumberPad-Info.plist ├── KeyboardNumberPad.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── vinogradov.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── vinogradov.mode1v3 │ ├── vinogradov.pbxuser │ └── xcuserdata │ │ └── vinogradov.xcuserdatad │ │ └── xcschemes │ │ ├── KeyboardNumberPad.xcscheme │ │ └── xcschememanagement.plist ├── KeyboardNumberPadViewController.xib ├── KeyboardNumberPad_Prefix.pch ├── MainWindow.xib ├── README ├── heart.png └── main.m ├── LICENSE └── README /AMTextFieldNumberPad.bundle/button_keyboard3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard3.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard3_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard3_highlighted.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4_highlighted.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4_highlighted@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4_transparent.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4_transparent@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4_transparent@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4_transparent_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4_transparent_highlighted.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard4_transparent_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard4_transparent_highlighted@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon_highlighted.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon_highlighted@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent_highlighted.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent_highlighted@2x.png -------------------------------------------------------------------------------- /AMTextFieldNumberPad.h: -------------------------------------------------------------------------------- 1 | // 2 | // AMTextFieldNumberPad.h 3 | // KeyboardNumberPad 4 | // 5 | // Created by Vinogradov Sergey on 13.06.11. 6 | // Copyright 2011 AppMake.Ru. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef enum { 12 | ButtonIconNone = 0, 13 | ButtonIconKeyboard = 1, 14 | ButtonIconCustom = 2 15 | } ButtonIcon; 16 | 17 | @interface AMTextFieldNumberPad : UITextField { 18 | UIButton *buttonDone; 19 | NSString *buttonText; 20 | UIImage *buttonImage; 21 | 22 | CGRect buttonRectShow; 23 | CGRect buttonRectHide; 24 | 25 | CGFloat buttonDurationShow; 26 | CGFloat buttonDurationHide; 27 | 28 | ButtonIcon buttonIcon; 29 | 30 | BOOL isKeyboardShow; 31 | BOOL isPortrait; 32 | BOOL isRotating; 33 | } 34 | 35 | @property (nonatomic, retain) NSString *buttonText; 36 | @property (nonatomic, retain) UIImage *buttonImage; 37 | @property (nonatomic, assign) ButtonIcon buttonIcon; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /AMTextFieldNumberPad.m: -------------------------------------------------------------------------------- 1 | // 2 | // AMTextFieldNumberPad.m 3 | // KeyboardNumberPad 4 | // 5 | // Created by Vinogradov Sergey on 13.06.11. 6 | // Copyright 2011 AppMake.Ru. All rights reserved. 7 | // 8 | 9 | #import "AMTextFieldNumberPad.h" 10 | 11 | @interface AMTextFieldNumberPad (Private) 12 | - (void)setup; 13 | - (id)getKeyboardWindow; 14 | - (void)checkKeyboardButton; 15 | - (void)removeKeyboardButton; 16 | - (void)changeButtonParams; 17 | - (void)orientationDidChange:(NSNotification *)theNotification; 18 | @end 19 | 20 | @implementation AMTextFieldNumberPad 21 | 22 | @synthesize buttonText, buttonImage, buttonIcon; 23 | 24 | #pragma mark - 25 | #pragma mark Initializate 26 | 27 | - (id)initWithFrame:(CGRect)frame { 28 | if ((self = [super initWithFrame:frame])) { 29 | [self setup]; 30 | } 31 | return self; 32 | } 33 | 34 | - (id)init { 35 | if ((self = [super init])) { 36 | [self setup]; 37 | } 38 | return self; 39 | } 40 | 41 | - (void)awakeFromNib { 42 | [self setup]; 43 | } 44 | 45 | - (void)setup { 46 | 47 | // Регистрируем события изменения состояния клавиатуры, UITextField и изменения ориентации экрана 48 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 49 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 50 | 51 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didBeginEditing:) name:UITextFieldTextDidBeginEditingNotification object:nil]; 52 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didEndEditing:) name:UITextFieldTextDidEndEditingNotification object:nil]; 53 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil]; 54 | 55 | [self orientationDidChange:nil]; 56 | 57 | buttonIcon = ButtonIconNone; 58 | } 59 | 60 | #pragma mark - 61 | #pragma mark Actions 62 | 63 | - (void)actionKeyboardHide:(UIButton *)sender { 64 | [self resignFirstResponder]; 65 | if (self.delegate && [self.delegate respondsToSelector:@selector(textFieldShouldReturn:)]) 66 | [self.delegate performSelector:@selector(textFieldShouldReturn:) withObject:self]; 67 | } 68 | 69 | #pragma mark - 70 | #pragma mark Setters 71 | 72 | - (void)setButtonText:(NSString *)theButtonText { 73 | [theButtonText retain]; 74 | [buttonText release]; 75 | buttonText = theButtonText; 76 | buttonIcon = ButtonIconNone; 77 | } 78 | 79 | - (void)setButtonImage:(UIImage *)theButtonImage { 80 | [theButtonImage retain]; 81 | [buttonImage release]; 82 | buttonImage = theButtonImage; 83 | buttonIcon = ButtonIconCustom; 84 | } 85 | 86 | - (void)setButtonIcon:(ButtonIcon)theButtonIcon { 87 | buttonIcon = theButtonIcon; 88 | } 89 | 90 | #pragma mark - 91 | #pragma mark Methods 92 | 93 | - (id)getKeyboardWindow { 94 | UIWindow *windowTemp = nil; 95 | for (UIWindow *w in [[UIApplication sharedApplication] windows]) { 96 | if ([NSStringFromClass([w class]) isEqualToString:@"UITextEffectsWindow"]) { 97 | windowTemp = w; 98 | break; 99 | } 100 | } 101 | return windowTemp; 102 | } 103 | 104 | - (void)checkKeyboardButton { 105 | 106 | // Пробуем найти нужное окно 107 | id windowTemp = [self getKeyboardWindow]; 108 | 109 | // Если нужное окно найдено 110 | if (windowTemp) { 111 | 112 | // Пробуем удалить кнопку (мы ее могли создать раньше, в этом или другом UITextField) 113 | for (UIView *v in [windowTemp subviews]) { 114 | if ([v isKindOfClass:[UIButton class]]) { 115 | [v setHidden:FALSE]; 116 | buttonDone = [(UIButton *)v retain]; 117 | [buttonDone removeTarget:nil action:NULL forControlEvents:UIControlEventAllEvents]; 118 | } 119 | } 120 | 121 | // Создаем кнопку если она еще не создана 122 | if (!buttonDone) { 123 | UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 124 | [button setAdjustsImageWhenHighlighted:NO]; 125 | [[button titleLabel] setLineBreakMode:UILineBreakModeWordWrap]; 126 | [[button titleLabel] setNumberOfLines:0]; 127 | [[button titleLabel] setTextAlignment:UITextAlignmentCenter]; 128 | [button retain]; 129 | [windowTemp addSubview:button]; 130 | 131 | buttonDone = button; 132 | [button release]; 133 | } 134 | 135 | // Устанавливаем позицию кнопки 136 | [self changeButtonParams]; 137 | 138 | // Добавляем событие 139 | [buttonDone addTarget:self action:@selector(actionKeyboardHide:) forControlEvents:UIControlEventTouchUpInside]; 140 | 141 | // Если клавиатура обычная (UIKeyboardAppearanceDefault) 142 | if (self.keyboardAppearance == UIKeyboardAppearanceDefault) { 143 | if ([[[UIDevice currentDevice] systemVersion] hasPrefix:@"3"]) { 144 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard3.png"] forState:UIControlStateNormal]; 145 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard3_highlighted.png"] forState:UIControlStateHighlighted]; 146 | } 147 | else { 148 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard4.png"] forState:UIControlStateNormal]; 149 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard4_highlighted.png"] forState:UIControlStateHighlighted]; 150 | } 151 | } 152 | // Если клавиатура прозрачная (UIKeyboardAppearanceAlert) 153 | else { 154 | if ([[[UIDevice currentDevice] systemVersion] hasPrefix:@"3"]) { 155 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard3_transparent.png"] forState:UIControlStateNormal]; 156 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard3_transparent_highlighted.png"] forState:UIControlStateHighlighted]; 157 | } 158 | else { 159 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard4_transparent.png"] forState:UIControlStateNormal]; 160 | [buttonDone setBackgroundImage:[UIImage imageNamed:@"AMTextFieldNumberPad.bundle/button_keyboard4_transparent_highlighted.png"] forState:UIControlStateHighlighted]; 161 | } 162 | } 163 | 164 | // Добавляем текст если он есть 165 | if (buttonIcon == ButtonIconNone) { 166 | 167 | if (self.keyboardAppearance == UIKeyboardAppearanceDefault) { 168 | [buttonDone setTitleColor:[UIColor colorWithRed:71.0/255.0 green:78.0/255.0 blue:91.0/255.0 alpha:1.0] forState:UIControlStateNormal]; 169 | [buttonDone setTitleColor:[UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:1.0] forState:UIControlStateHighlighted]; 170 | [buttonDone setTitleShadowColor:[UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:0.5] forState:UIControlStateNormal]; 171 | [buttonDone setTitleShadowColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5] forState:UIControlStateHighlighted]; 172 | [[buttonDone titleLabel] setShadowOffset:CGSizeMake(0.00f, 1.00f)]; 173 | } 174 | else { 175 | [buttonDone setTitleColor:[UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:1.0] forState:UIControlStateNormal]; 176 | [buttonDone setTitleColor:[UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:1.0] forState:UIControlStateHighlighted]; 177 | [buttonDone setTitleShadowColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5] forState:UIControlStateNormal]; 178 | [buttonDone setTitleShadowColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5] forState:UIControlStateHighlighted]; 179 | [[buttonDone titleLabel] setShadowOffset:CGSizeMake(0.00f, -1.00f)]; 180 | } 181 | 182 | [buttonDone setImage:nil forState:UIControlStateNormal]; 183 | [buttonDone setImage:nil forState:UIControlStateHighlighted]; 184 | [[buttonDone titleLabel] setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:14.0]]; 185 | [buttonDone setReversesTitleShadowWhenHighlighted:TRUE]; 186 | 187 | // Если текст уже определен 188 | if (buttonText) 189 | [buttonDone setTitle:buttonText forState:UIControlStateNormal]; 190 | // Пытаемся подобрать текст из UIReturnKeyType 191 | else { 192 | NSString *title = nil; 193 | if (self.returnKeyType == UIReturnKeyDone) 194 | title = @"DONE"; 195 | else if (self.returnKeyType == UIReturnKeyEmergencyCall) 196 | title = @"EMERGENCY CALL"; 197 | else if (self.returnKeyType == UIReturnKeyGo) 198 | title = @"GO"; 199 | else if (self.returnKeyType == UIReturnKeyGoogle) 200 | title = @"GOOGLE"; 201 | else if (self.returnKeyType == UIReturnKeyJoin) 202 | title = @"JOIN"; 203 | else if (self.returnKeyType == UIReturnKeyNext) 204 | title = @"NEXT"; 205 | else if (self.returnKeyType == UIReturnKeyRoute) 206 | title = @"ROUTE"; 207 | else if (self.returnKeyType == UIReturnKeySearch) 208 | title = @"SEARCH"; 209 | else if (self.returnKeyType == UIReturnKeySend) 210 | title = @"SEND"; 211 | else if (self.returnKeyType == UIReturnKeyYahoo) 212 | title = @"YAHOO"; 213 | else 214 | title = @"RETURN"; 215 | [buttonDone setTitle:NSLocalizedString(title, @"") forState:UIControlStateNormal]; 216 | } 217 | } 218 | else if (buttonIcon == ButtonIconKeyboard) { 219 | [buttonDone setTitle:@"" forState:UIControlStateNormal]; 220 | [buttonDone setImage:[UIImage imageNamed:((self.keyboardAppearance == UIKeyboardAppearanceDefault) ? @"AMTextFieldNumberPad.bundle/button_keyboard_icon.png" : @"AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent.png")] forState:UIControlStateNormal]; 221 | [buttonDone setImage:[UIImage imageNamed:((self.keyboardAppearance == UIKeyboardAppearanceDefault) ? @"AMTextFieldNumberPad.bundle/button_keyboard_icon_highlighted.png" : @"AMTextFieldNumberPad.bundle/button_keyboard_icon_transparent_highlighted.png")] forState:UIControlStateHighlighted]; 222 | } 223 | else if (buttonIcon == ButtonIconCustom && buttonImage) { 224 | [buttonDone setTitle:@"" forState:UIControlStateNormal]; 225 | [buttonDone setImage:buttonImage forState:UIControlStateNormal]; 226 | [buttonDone setImage:nil forState:UIControlStateHighlighted]; 227 | } 228 | } 229 | } 230 | 231 | - (void)removeKeyboardButton { 232 | 233 | // Пробуем найти нужное окно 234 | id windowTemp = [self getKeyboardWindow]; 235 | 236 | // Если нужное окно найдено 237 | if (windowTemp) { 238 | 239 | // Пробуем удалить кнопку 240 | for (UIView *v in [windowTemp subviews]) { 241 | if ([v isKindOfClass:[UIButton class]]) { 242 | [v setHidden:TRUE]; 243 | } 244 | } 245 | } 246 | } 247 | 248 | - (void)changeButtonParams { 249 | if (self.editing) { 250 | [buttonDone setFrame:buttonRectShow]; 251 | } 252 | } 253 | 254 | #pragma mark - 255 | #pragma mark Notifications 256 | 257 | - (void)orientationDidChange:(NSNotification *)theNotification { 258 | 259 | isRotating = TRUE; 260 | 261 | NSUInteger orientation = [UIDevice currentDevice].orientation; 262 | 263 | if (!UIDeviceOrientationIsValidInterfaceOrientation(orientation)) { 264 | isPortrait = YES; 265 | } 266 | else { 267 | isPortrait = UIDeviceOrientationIsPortrait(orientation); 268 | } 269 | 270 | buttonRectShow = (isPortrait) ? CGRectMake(0.00f, 427.00f, 105.00f, 53.00f) : CGRectMake(0.00f, 281.00f, 158.00f, 39.00f); 271 | buttonRectHide = (isPortrait) ? CGRectMake(0.00f, 644.00f, 105.00f, 53.00f) : CGRectMake(0.00f, 443.00f, 158.00f, 39.00f); 272 | 273 | [self changeButtonParams]; 274 | } 275 | 276 | - (void)didBeginEditing:(NSNotification *)theNotification { 277 | if (self.editing) { 278 | if (self.keyboardType == UIKeyboardTypeNumberPad) 279 | [self checkKeyboardButton]; 280 | else 281 | [buttonDone setHidden:TRUE]; 282 | } 283 | 284 | } 285 | 286 | - (void)didEndEditing:(NSNotification *)theNotification { 287 | if (!self.editing) { 288 | [self removeKeyboardButton]; 289 | } 290 | } 291 | 292 | - (void)keyboardWillShow:(NSNotification *)theNotification { 293 | 294 | isRotating = FALSE; 295 | 296 | if (!self.editing || self.keyboardType != UIKeyboardTypeNumberPad || isKeyboardShow) { 297 | return; 298 | } 299 | 300 | // Получаем нужное окно 301 | UIWindow *windowTemp = [self getKeyboardWindow]; 302 | 303 | // Проверяем, создана ли кнопка 304 | [self checkKeyboardButton]; 305 | 306 | // Если нужное окно найдено и кнопка существует 307 | if (windowTemp && buttonDone) { 308 | 309 | // Включаем отображение кнопки (на тот случай если была выключена) 310 | [buttonDone setHidden:FALSE]; 311 | 312 | // Тянем кнопку вверх вместе с клавиатурой 313 | [buttonDone setFrame:buttonRectHide]; 314 | [UIView beginAnimations:nil context:NULL]; 315 | [UIView setAnimationDuration:0.3]; 316 | [buttonDone setFrame:buttonRectShow]; 317 | [UIView commitAnimations]; 318 | } 319 | } 320 | 321 | - (void)keyboardWillHide:(NSNotification *)theNotification { 322 | 323 | if (!self.editing || isRotating) { 324 | return; 325 | } 326 | 327 | // Получаем нужное окн 328 | UIWindow *windowTemp = [self getKeyboardWindow]; 329 | 330 | // Проверяем, создана ли кнопка 331 | [self checkKeyboardButton]; 332 | 333 | // Если нужное окно найдено и кнопка существует 334 | if (windowTemp && buttonDone) { 335 | 336 | // Тянем кнопку вниз вместе с клавиатурой 337 | [UIView beginAnimations:nil context:NULL]; 338 | [UIView setAnimationDuration:0.3]; 339 | [UIView setAnimationDelegate:self]; 340 | [UIView setAnimationDidStopSelector:@selector(buttonAnimationHide)]; 341 | [buttonDone setFrame:buttonRectHide]; 342 | [UIView commitAnimations]; 343 | } 344 | } 345 | 346 | - (void)buttonAnimationHide { 347 | isKeyboardShow = FALSE; 348 | [buttonDone setHidden:TRUE]; 349 | } 350 | 351 | #pragma mark - 352 | #pragma mark Memory managment 353 | 354 | - (void)dealloc { 355 | [[NSNotificationCenter defaultCenter] removeObserver:self]; 356 | [buttonDone release]; 357 | [buttonText release]; 358 | [buttonImage release]; 359 | [super dealloc]; 360 | } 361 | 362 | @end -------------------------------------------------------------------------------- /Demo/Classes/KeyboardNumberPadAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // KeyboardNumberPadAppDelegate.h 3 | // KeyboardNumberPad 4 | // 5 | // Created by Vinogradov Sergey on 11.06.11. 6 | // Copyright 2011 AppMake.Ru. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class KeyboardNumberPadViewController; 12 | 13 | @interface KeyboardNumberPadAppDelegate : NSObject { 14 | UIWindow *window; 15 | KeyboardNumberPadViewController *viewController; 16 | } 17 | 18 | @property (nonatomic, retain) IBOutlet UIWindow *window; 19 | @property (nonatomic, retain) IBOutlet KeyboardNumberPadViewController *viewController; 20 | 21 | @end 22 | 23 | -------------------------------------------------------------------------------- /Demo/Classes/KeyboardNumberPadAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // KeyboardNumberPadAppDelegate.m 3 | // KeyboardNumberPad 4 | // 5 | // Created by Vinogradov Sergey on 11.06.11. 6 | // Copyright 2011 AppMake.Ru. All rights reserved. 7 | // 8 | 9 | #import "KeyboardNumberPadAppDelegate.h" 10 | #import "KeyboardNumberPadViewController.h" 11 | 12 | @implementation KeyboardNumberPadAppDelegate 13 | 14 | @synthesize window; 15 | @synthesize viewController; 16 | 17 | 18 | #pragma mark - 19 | #pragma mark Application lifecycle 20 | 21 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 22 | 23 | // Override point for customization after application launch. 24 | 25 | // Set the view controller as the window's root view controller and display. 26 | self.window.rootViewController = self.viewController; 27 | [self.window makeKeyAndVisible]; 28 | 29 | return YES; 30 | } 31 | 32 | 33 | - (void)applicationWillResignActive:(UIApplication *)application { 34 | /* 35 | 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. 36 | 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. 37 | */ 38 | } 39 | 40 | 41 | - (void)applicationDidEnterBackground:(UIApplication *)application { 42 | /* 43 | 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. 44 | If your application supports background execution, called instead of applicationWillTerminate: when the user quits. 45 | */ 46 | } 47 | 48 | 49 | - (void)applicationWillEnterForeground:(UIApplication *)application { 50 | /* 51 | 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. 52 | */ 53 | } 54 | 55 | 56 | - (void)applicationDidBecomeActive:(UIApplication *)application { 57 | /* 58 | 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. 59 | */ 60 | } 61 | 62 | 63 | - (void)applicationWillTerminate:(UIApplication *)application { 64 | /* 65 | Called when the application is about to terminate. 66 | See also applicationDidEnterBackground:. 67 | */ 68 | } 69 | 70 | 71 | #pragma mark - 72 | #pragma mark Memory management 73 | 74 | - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { 75 | /* 76 | Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later. 77 | */ 78 | } 79 | 80 | 81 | - (void)dealloc { 82 | [viewController release]; 83 | [window release]; 84 | [super dealloc]; 85 | } 86 | 87 | 88 | @end 89 | -------------------------------------------------------------------------------- /Demo/Classes/KeyboardNumberPadViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // KeyboardNumberPadViewController.h 3 | // KeyboardNumberPad 4 | // 5 | // Created by Vinogradov Sergey on 11.06.11. 6 | // Copyright 2011 AppMake.Ru. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AMTextFieldNumberPad.h" 11 | 12 | @interface KeyboardNumberPadViewController : UIViewController { 13 | IBOutlet AMTextFieldNumberPad *textField; 14 | } 15 | 16 | @end -------------------------------------------------------------------------------- /Demo/Classes/KeyboardNumberPadViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // KeyboardNumberPadViewController.m 3 | // KeyboardNumberPad 4 | // 5 | // Created by Vinogradov Sergey on 11.06.11. 6 | // Copyright 2011 AppMake.Ru. All rights reserved. 7 | // 8 | 9 | #import "KeyboardNumberPadViewController.h" 10 | #import "AMTextFieldNumberPad.h" 11 | 12 | @implementation KeyboardNumberPadViewController 13 | 14 | 15 | 16 | #pragma mark - 17 | #pragma mark Initializate 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | 22 | // Вызов из Interface Builder 23 | [textField setButtonIcon:ButtonIconKeyboard]; 24 | 25 | // Прозрачная клавиатура с UIReturnKeyGo 26 | AMTextFieldNumberPad *textField2 = [[AMTextFieldNumberPad alloc] init]; 27 | [textField2 setFrame:CGRectMake(20.00f, 70.00f, 280.00f, 31.00f)]; 28 | [textField2 setBorderStyle:UITextBorderStyleRoundedRect]; 29 | [textField2 setKeyboardType:UIKeyboardTypeNumberPad]; 30 | [textField2 setReturnKeyType:UIReturnKeyGo]; 31 | [textField2 setKeyboardAppearance:UIKeyboardAppearanceAlert]; 32 | [textField2 setPlaceholder:@"Прозрачная с UIReturnKeyGo"]; 33 | [self.view addSubview:textField2]; 34 | [textField2 release]; 35 | 36 | // Обычная клавиатура с иконкой клавиатуры 37 | AMTextFieldNumberPad *textField3 = [[AMTextFieldNumberPad alloc] initWithFrame:CGRectMake(20.00f, 120.00f, 280.00f, 31.00f)]; 38 | [textField3 setBorderStyle:UITextBorderStyleRoundedRect]; 39 | [textField3 setKeyboardType:UIKeyboardTypeNumberPad]; 40 | [textField3 setKeyboardAppearance:UIKeyboardAppearanceDefault]; 41 | [textField3 setButtonIcon:ButtonIconKeyboard]; 42 | [textField3 setPlaceholder:@"Обычная с иконкой клавиатуры"]; 43 | [self.view addSubview:textField3]; 44 | [textField3 release]; 45 | 46 | // Прозрачная клавиатура с иконкой клавиатуры 47 | AMTextFieldNumberPad *textField4 = [[AMTextFieldNumberPad alloc] initWithFrame:CGRectMake(20.00f, 170.00f, 280.00f, 31.00f)]; 48 | [textField4 setBorderStyle:UITextBorderStyleRoundedRect]; 49 | [textField4 setKeyboardType:UIKeyboardTypeNumberPad]; 50 | [textField4 setKeyboardAppearance:UIKeyboardAppearanceAlert]; 51 | [textField4 setButtonIcon:ButtonIconKeyboard]; 52 | [textField4 setPlaceholder:@"Прозрачная с иконкой клавиатуры"]; 53 | [self.view addSubview:textField4]; 54 | [textField4 release]; 55 | 56 | // Обычная клавиатура с кастомной иконкой 57 | AMTextFieldNumberPad *textField5 = [[AMTextFieldNumberPad alloc] initWithFrame:CGRectMake(20.00f, 220.00f, 280.00f, 31.00f)]; 58 | [textField5 setBorderStyle:UITextBorderStyleRoundedRect]; 59 | [textField5 setKeyboardType:UIKeyboardTypeNumberPad]; 60 | [textField5 setKeyboardAppearance:UIKeyboardAppearanceDefault]; 61 | [textField5 setButtonImage:[UIImage imageNamed:@"heart.png"]]; 62 | [textField5 setPlaceholder:@"Обычная с кастомной иконкой"]; 63 | [self.view addSubview:textField5]; 64 | [textField5 release]; 65 | 66 | // Обычная клавиатура с текстом HABRAHABR 67 | AMTextFieldNumberPad *textField6 = [[AMTextFieldNumberPad alloc] initWithFrame:CGRectMake(20.00f, 270.00f, 280.00f, 31.00f)]; 68 | [textField6 setBorderStyle:UITextBorderStyleRoundedRect]; 69 | [textField6 setKeyboardType:UIKeyboardTypeNumberPad]; 70 | [textField6 setButtonText:@"HABRAHABR"]; 71 | [textField6 setPlaceholder:@"Обычная c текстом"]; 72 | [self.view addSubview:textField6]; 73 | [textField6 release]; 74 | } 75 | 76 | #pragma mark - 77 | #pragma mark Other 78 | 79 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 80 | return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); 81 | } 82 | 83 | #pragma mark - 84 | #pragma mark Memory managment 85 | 86 | - (void)dealloc { 87 | [textField release]; 88 | [super dealloc]; 89 | } 90 | 91 | @end -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad-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 | ru.appmake 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 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1D3623260D0F684500981E51 /* KeyboardNumberPadAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* KeyboardNumberPadAppDelegate.m */; }; 11 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; 12 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 13 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; 14 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; 15 | 2899E5220DE3E06400AC0155 /* KeyboardNumberPadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* KeyboardNumberPadViewController.xib */; }; 16 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; 17 | 28D7ACF80DDB3853001CB0EB /* KeyboardNumberPadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* KeyboardNumberPadViewController.m */; }; 18 | D1CF0ADB13A68F6000A62F51 /* heart.png in Resources */ = {isa = PBXBuildFile; fileRef = D1CF0ADA13A68F6000A62F51 /* heart.png */; }; 19 | D1CF0B1B13A6A09200A62F51 /* AMTextFieldNumberPad.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D1CF0B1813A6A09200A62F51 /* AMTextFieldNumberPad.bundle */; }; 20 | D1CF0B1C13A6A09200A62F51 /* AMTextFieldNumberPad.m in Sources */ = {isa = PBXBuildFile; fileRef = D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXFileReference section */ 24 | 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 25 | 1D3623240D0F684500981E51 /* KeyboardNumberPadAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyboardNumberPadAppDelegate.h; sourceTree = ""; }; 26 | 1D3623250D0F684500981E51 /* KeyboardNumberPadAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeyboardNumberPadAppDelegate.m; sourceTree = ""; }; 27 | 1D6058910D05DD3D006BFB54 /* KeyboardNumberPad.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = KeyboardNumberPad.app; sourceTree = BUILT_PRODUCTS_DIR; }; 28 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 29 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 30 | 2899E5210DE3E06400AC0155 /* KeyboardNumberPadViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KeyboardNumberPadViewController.xib; sourceTree = ""; }; 31 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; 32 | 28D7ACF60DDB3853001CB0EB /* KeyboardNumberPadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyboardNumberPadViewController.h; sourceTree = ""; }; 33 | 28D7ACF70DDB3853001CB0EB /* KeyboardNumberPadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeyboardNumberPadViewController.m; sourceTree = ""; }; 34 | 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 35 | 32CA4F630368D1EE00C91783 /* KeyboardNumberPad_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyboardNumberPad_Prefix.pch; sourceTree = ""; }; 36 | 8D1107310486CEB800E47090 /* KeyboardNumberPad-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "KeyboardNumberPad-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; 37 | D1CF0ADA13A68F6000A62F51 /* heart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = heart.png; sourceTree = ""; }; 38 | D1CF0B1813A6A09200A62F51 /* AMTextFieldNumberPad.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = AMTextFieldNumberPad.bundle; path = ../../AMTextFieldNumberPad.bundle; sourceTree = ""; }; 39 | D1CF0B1913A6A09200A62F51 /* AMTextFieldNumberPad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AMTextFieldNumberPad.h; path = ../../AMTextFieldNumberPad.h; sourceTree = ""; }; 40 | D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AMTextFieldNumberPad.m; path = ../../AMTextFieldNumberPad.m; sourceTree = ""; }; 41 | /* End PBXFileReference section */ 42 | 43 | /* Begin PBXFrameworksBuildPhase section */ 44 | 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { 45 | isa = PBXFrameworksBuildPhase; 46 | buildActionMask = 2147483647; 47 | files = ( 48 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 49 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, 50 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, 51 | ); 52 | runOnlyForDeploymentPostprocessing = 0; 53 | }; 54 | /* End PBXFrameworksBuildPhase section */ 55 | 56 | /* Begin PBXGroup section */ 57 | 080E96DDFE201D6D7F000001 /* Classes */ = { 58 | isa = PBXGroup; 59 | children = ( 60 | D1CF0B1813A6A09200A62F51 /* AMTextFieldNumberPad.bundle */, 61 | D1CF0B1913A6A09200A62F51 /* AMTextFieldNumberPad.h */, 62 | D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */, 63 | 1D3623240D0F684500981E51 /* KeyboardNumberPadAppDelegate.h */, 64 | 1D3623250D0F684500981E51 /* KeyboardNumberPadAppDelegate.m */, 65 | 28D7ACF60DDB3853001CB0EB /* KeyboardNumberPadViewController.h */, 66 | 28D7ACF70DDB3853001CB0EB /* KeyboardNumberPadViewController.m */, 67 | ); 68 | path = Classes; 69 | sourceTree = ""; 70 | }; 71 | 19C28FACFE9D520D11CA2CBB /* Products */ = { 72 | isa = PBXGroup; 73 | children = ( 74 | 1D6058910D05DD3D006BFB54 /* KeyboardNumberPad.app */, 75 | ); 76 | name = Products; 77 | sourceTree = ""; 78 | }; 79 | 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { 80 | isa = PBXGroup; 81 | children = ( 82 | 080E96DDFE201D6D7F000001 /* Classes */, 83 | 29B97315FDCFA39411CA2CEA /* Other Sources */, 84 | 29B97317FDCFA39411CA2CEA /* Resources */, 85 | 29B97323FDCFA39411CA2CEA /* Frameworks */, 86 | 19C28FACFE9D520D11CA2CBB /* Products */, 87 | ); 88 | name = CustomTemplate; 89 | sourceTree = ""; 90 | }; 91 | 29B97315FDCFA39411CA2CEA /* Other Sources */ = { 92 | isa = PBXGroup; 93 | children = ( 94 | 32CA4F630368D1EE00C91783 /* KeyboardNumberPad_Prefix.pch */, 95 | 29B97316FDCFA39411CA2CEA /* main.m */, 96 | ); 97 | name = "Other Sources"; 98 | sourceTree = ""; 99 | }; 100 | 29B97317FDCFA39411CA2CEA /* Resources */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | D1CF0ADA13A68F6000A62F51 /* heart.png */, 104 | 2899E5210DE3E06400AC0155 /* KeyboardNumberPadViewController.xib */, 105 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */, 106 | 8D1107310486CEB800E47090 /* KeyboardNumberPad-Info.plist */, 107 | ); 108 | name = Resources; 109 | sourceTree = ""; 110 | }; 111 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = { 112 | isa = PBXGroup; 113 | children = ( 114 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, 115 | 1D30AB110D05D00D00671497 /* Foundation.framework */, 116 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */, 117 | ); 118 | name = Frameworks; 119 | sourceTree = ""; 120 | }; 121 | /* End PBXGroup section */ 122 | 123 | /* Begin PBXNativeTarget section */ 124 | 1D6058900D05DD3D006BFB54 /* KeyboardNumberPad */ = { 125 | isa = PBXNativeTarget; 126 | buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "KeyboardNumberPad" */; 127 | buildPhases = ( 128 | 1D60588D0D05DD3D006BFB54 /* Resources */, 129 | 1D60588E0D05DD3D006BFB54 /* Sources */, 130 | 1D60588F0D05DD3D006BFB54 /* Frameworks */, 131 | ); 132 | buildRules = ( 133 | ); 134 | dependencies = ( 135 | ); 136 | name = KeyboardNumberPad; 137 | productName = KeyboardNumberPad; 138 | productReference = 1D6058910D05DD3D006BFB54 /* KeyboardNumberPad.app */; 139 | productType = "com.apple.product-type.application"; 140 | }; 141 | /* End PBXNativeTarget section */ 142 | 143 | /* Begin PBXProject section */ 144 | 29B97313FDCFA39411CA2CEA /* Project object */ = { 145 | isa = PBXProject; 146 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "KeyboardNumberPad" */; 147 | compatibilityVersion = "Xcode 3.2"; 148 | developmentRegion = English; 149 | hasScannedForEncodings = 1; 150 | knownRegions = ( 151 | English, 152 | Japanese, 153 | French, 154 | German, 155 | ); 156 | mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; 157 | projectDirPath = ""; 158 | projectRoot = ""; 159 | targets = ( 160 | 1D6058900D05DD3D006BFB54 /* KeyboardNumberPad */, 161 | ); 162 | }; 163 | /* End PBXProject section */ 164 | 165 | /* Begin PBXResourcesBuildPhase section */ 166 | 1D60588D0D05DD3D006BFB54 /* Resources */ = { 167 | isa = PBXResourcesBuildPhase; 168 | buildActionMask = 2147483647; 169 | files = ( 170 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, 171 | 2899E5220DE3E06400AC0155 /* KeyboardNumberPadViewController.xib in Resources */, 172 | D1CF0ADB13A68F6000A62F51 /* heart.png in Resources */, 173 | D1CF0B1B13A6A09200A62F51 /* AMTextFieldNumberPad.bundle in Resources */, 174 | ); 175 | runOnlyForDeploymentPostprocessing = 0; 176 | }; 177 | /* End PBXResourcesBuildPhase section */ 178 | 179 | /* Begin PBXSourcesBuildPhase section */ 180 | 1D60588E0D05DD3D006BFB54 /* Sources */ = { 181 | isa = PBXSourcesBuildPhase; 182 | buildActionMask = 2147483647; 183 | files = ( 184 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */, 185 | 1D3623260D0F684500981E51 /* KeyboardNumberPadAppDelegate.m in Sources */, 186 | 28D7ACF80DDB3853001CB0EB /* KeyboardNumberPadViewController.m in Sources */, 187 | D1CF0B1C13A6A09200A62F51 /* AMTextFieldNumberPad.m in Sources */, 188 | ); 189 | runOnlyForDeploymentPostprocessing = 0; 190 | }; 191 | /* End PBXSourcesBuildPhase section */ 192 | 193 | /* Begin XCBuildConfiguration section */ 194 | 1D6058940D05DD3E006BFB54 /* Debug */ = { 195 | isa = XCBuildConfiguration; 196 | buildSettings = { 197 | ALWAYS_SEARCH_USER_PATHS = NO; 198 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Sergey Vinogradov (69WW8Q864C)"; 199 | COPY_PHASE_STRIP = NO; 200 | GCC_DYNAMIC_NO_PIC = NO; 201 | GCC_OPTIMIZATION_LEVEL = 0; 202 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 203 | GCC_PREFIX_HEADER = KeyboardNumberPad_Prefix.pch; 204 | INFOPLIST_FILE = "KeyboardNumberPad-Info.plist"; 205 | PRODUCT_NAME = KeyboardNumberPad; 206 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "4197BC01-65ED-4A5D-B9ED-DE960B669851"; 207 | }; 208 | name = Debug; 209 | }; 210 | 1D6058950D05DD3E006BFB54 /* Release */ = { 211 | isa = XCBuildConfiguration; 212 | buildSettings = { 213 | ALWAYS_SEARCH_USER_PATHS = NO; 214 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Sergey Vinogradov (69WW8Q864C)"; 215 | COPY_PHASE_STRIP = YES; 216 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 217 | GCC_PREFIX_HEADER = KeyboardNumberPad_Prefix.pch; 218 | INFOPLIST_FILE = "KeyboardNumberPad-Info.plist"; 219 | PRODUCT_NAME = KeyboardNumberPad; 220 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "4197BC01-65ED-4A5D-B9ED-DE960B669851"; 221 | VALIDATE_PRODUCT = YES; 222 | }; 223 | name = Release; 224 | }; 225 | C01FCF4F08A954540054247B /* Debug */ = { 226 | isa = XCBuildConfiguration; 227 | buildSettings = { 228 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 229 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Sergey Vinogradov (69WW8Q864C)"; 230 | GCC_C_LANGUAGE_STANDARD = c99; 231 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 232 | GCC_WARN_UNUSED_VARIABLE = YES; 233 | IPHONEOS_DEPLOYMENT_TARGET = 3.0; 234 | PREBINDING = NO; 235 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "4197BC01-65ED-4A5D-B9ED-DE960B669851"; 236 | SDKROOT = iphoneos; 237 | }; 238 | name = Debug; 239 | }; 240 | C01FCF5008A954540054247B /* Release */ = { 241 | isa = XCBuildConfiguration; 242 | buildSettings = { 243 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 244 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Sergey Vinogradov (69WW8Q864C)"; 245 | GCC_C_LANGUAGE_STANDARD = c99; 246 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 247 | GCC_WARN_UNUSED_VARIABLE = YES; 248 | IPHONEOS_DEPLOYMENT_TARGET = 3.0; 249 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 250 | PREBINDING = NO; 251 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "4197BC01-65ED-4A5D-B9ED-DE960B669851"; 252 | SDKROOT = iphoneos; 253 | }; 254 | name = Release; 255 | }; 256 | /* End XCBuildConfiguration section */ 257 | 258 | /* Begin XCConfigurationList section */ 259 | 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "KeyboardNumberPad" */ = { 260 | isa = XCConfigurationList; 261 | buildConfigurations = ( 262 | 1D6058940D05DD3E006BFB54 /* Debug */, 263 | 1D6058950D05DD3E006BFB54 /* Release */, 264 | ); 265 | defaultConfigurationIsVisible = 0; 266 | defaultConfigurationName = Release; 267 | }; 268 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "KeyboardNumberPad" */ = { 269 | isa = XCConfigurationList; 270 | buildConfigurations = ( 271 | C01FCF4F08A954540054247B /* Debug */, 272 | C01FCF5008A954540054247B /* Release */, 273 | ); 274 | defaultConfigurationIsVisible = 0; 275 | defaultConfigurationName = Release; 276 | }; 277 | /* End XCConfigurationList section */ 278 | }; 279 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; 280 | } 281 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad.xcodeproj/vinogradov.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-old/Library/PrivateFrameworks/DevToolsInterface.framework/Resources 172 | Description 173 | DefaultDescriptionKey 174 | DockingSystemVisible 175 | 176 | Extension 177 | mode1v3 178 | FavBarConfig 179 | 180 | PBXProjectModuleGUID 181 | D155F76E13A39B7900A0A56A 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 | 355 256 | 257 | PBXSmartGroupTreeModuleColumnsKey_v4 258 | 259 | MainColumn 260 | 261 | 262 | PBXSmartGroupTreeModuleOutlineStateKey_v7 263 | 264 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 265 | 266 | 29B97314FDCFA39411CA2CEA 267 | 080E96DDFE201D6D7F000001 268 | 29B97317FDCFA39411CA2CEA 269 | 29B97323FDCFA39411CA2CEA 270 | 1DF5F4DF0D08C38300B7A737 271 | 1C37FABC05509CD000000102 272 | 273 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 274 | 275 | 276 | 4 277 | 1 278 | 0 279 | 280 | 281 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 282 | {{0, 0}, {355, 1243}} 283 | 284 | PBXTopSmartGroupGIDs 285 | 286 | XCIncludePerspectivesSwitch 287 | 288 | XCSharingToken 289 | com.apple.Xcode.GFSharingToken 290 | 291 | GeometryConfiguration 292 | 293 | Frame 294 | {{0, 0}, {372, 1261}} 295 | GroupTreeTableConfiguration 296 | 297 | MainColumn 298 | 355 299 | 300 | RubberWindowFrame 301 | 0 116 2560 1302 0 0 2560 1418 302 | 303 | Module 304 | PBXSmartGroupTreeModule 305 | Proportion 306 | 372pt 307 | 308 | 309 | Dock 310 | 311 | 312 | BecomeActive 313 | 314 | ContentConfiguration 315 | 316 | PBXProjectModuleGUID 317 | 1CE0B20306471E060097A5F4 318 | PBXProjectModuleLabel 319 | AMTextFieldNumberPad.m 320 | PBXSplitModuleInNavigatorKey 321 | 322 | Split0 323 | 324 | PBXProjectModuleGUID 325 | 1CE0B20406471E060097A5F4 326 | PBXProjectModuleLabel 327 | AMTextFieldNumberPad.m 328 | _historyCapacity 329 | 0 330 | bookmark 331 | D146513513A9109F000D7DD6 332 | history 333 | 334 | D1FC790913A5798E0062ADFA 335 | D1FC79C713A62F120062ADFA 336 | D1CF0AE613A68FAC00A62F51 337 | D1AD7CC213A7823400DCAEF0 338 | D1AD7CC313A7823400DCAEF0 339 | D1AD7CC413A7823400DCAEF0 340 | D1AD7CC713A7823400DCAEF0 341 | D1AD7CC913A7823400DCAEF0 342 | D1AD7CCB13A7823400DCAEF0 343 | D1AD7CCD13A7823400DCAEF0 344 | D1AD7CCF13A7823400DCAEF0 345 | D1AD7CD113A7823400DCAEF0 346 | D1AD7CD313A7823400DCAEF0 347 | D14650DC13A8FF2C000D7DD6 348 | D14650DD13A8FF2C000D7DD6 349 | D14650E813A9009D000D7DD6 350 | 351 | 352 | SplitCount 353 | 1 354 | 355 | StatusBarVisibility 356 | 357 | 358 | GeometryConfiguration 359 | 360 | Frame 361 | {{0, 0}, {2183, 1256}} 362 | RubberWindowFrame 363 | 0 116 2560 1302 0 0 2560 1418 364 | 365 | Module 366 | PBXNavigatorGroup 367 | Proportion 368 | 1256pt 369 | 370 | 371 | ContentConfiguration 372 | 373 | PBXProjectModuleGUID 374 | 1CE0B20506471E060097A5F4 375 | PBXProjectModuleLabel 376 | Detail 377 | 378 | GeometryConfiguration 379 | 380 | Frame 381 | {{0, 1261}, {2183, 0}} 382 | RubberWindowFrame 383 | 0 116 2560 1302 0 0 2560 1418 384 | 385 | Module 386 | XCDetailModule 387 | Proportion 388 | 0pt 389 | 390 | 391 | Proportion 392 | 2183pt 393 | 394 | 395 | Name 396 | Project 397 | ServiceClasses 398 | 399 | XCModuleDock 400 | PBXSmartGroupTreeModule 401 | XCModuleDock 402 | PBXNavigatorGroup 403 | XCDetailModule 404 | 405 | TableOfContents 406 | 407 | D146513013A9105D000D7DD6 408 | 1CE0B1FE06471DED0097A5F4 409 | D146513113A9105D000D7DD6 410 | 1CE0B20306471E060097A5F4 411 | 1CE0B20506471E060097A5F4 412 | 413 | ToolbarConfigUserDefaultsMinorVersion 414 | 2 415 | ToolbarConfiguration 416 | xcode.toolbar.config.defaultV3 417 | 418 | 419 | ControllerClassBaseName 420 | 421 | IconName 422 | WindowOfProject 423 | Identifier 424 | perspective.morph 425 | IsVertical 426 | 0 427 | Layout 428 | 429 | 430 | BecomeActive 431 | 1 432 | ContentConfiguration 433 | 434 | PBXBottomSmartGroupGIDs 435 | 436 | 1C37FBAC04509CD000000102 437 | 1C37FAAC04509CD000000102 438 | 1C08E77C0454961000C914BD 439 | 1C37FABC05509CD000000102 440 | 1C37FABC05539CD112110102 441 | E2644B35053B69B200211256 442 | 1C37FABC04509CD000100104 443 | 1CC0EA4004350EF90044410B 444 | 1CC0EA4004350EF90041110B 445 | 446 | PBXProjectModuleGUID 447 | 11E0B1FE06471DED0097A5F4 448 | PBXProjectModuleLabel 449 | Files 450 | PBXProjectStructureProvided 451 | yes 452 | PBXSmartGroupTreeModuleColumnData 453 | 454 | PBXSmartGroupTreeModuleColumnWidthsKey 455 | 456 | 186 457 | 458 | PBXSmartGroupTreeModuleColumnsKey_v4 459 | 460 | MainColumn 461 | 462 | 463 | PBXSmartGroupTreeModuleOutlineStateKey_v7 464 | 465 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 466 | 467 | 29B97314FDCFA39411CA2CEA 468 | 1C37FABC05509CD000000102 469 | 470 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 471 | 472 | 473 | 0 474 | 475 | 476 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 477 | {{0, 0}, {186, 337}} 478 | 479 | PBXTopSmartGroupGIDs 480 | 481 | XCIncludePerspectivesSwitch 482 | 1 483 | XCSharingToken 484 | com.apple.Xcode.GFSharingToken 485 | 486 | GeometryConfiguration 487 | 488 | Frame 489 | {{0, 0}, {203, 355}} 490 | GroupTreeTableConfiguration 491 | 492 | MainColumn 493 | 186 494 | 495 | RubberWindowFrame 496 | 373 269 690 397 0 0 1440 878 497 | 498 | Module 499 | PBXSmartGroupTreeModule 500 | Proportion 501 | 100% 502 | 503 | 504 | Name 505 | Morph 506 | PreferredWidth 507 | 300 508 | ServiceClasses 509 | 510 | XCModuleDock 511 | PBXSmartGroupTreeModule 512 | 513 | TableOfContents 514 | 515 | 11E0B1FE06471DED0097A5F4 516 | 517 | ToolbarConfiguration 518 | xcode.toolbar.config.default.shortV3 519 | 520 | 521 | PerspectivesBarVisible 522 | 523 | ShelfIsVisible 524 | 525 | SourceDescription 526 | file at '/Developer-old/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' 527 | StatusbarIsVisible 528 | 529 | TimeStamp 530 | 0.0 531 | ToolbarConfigUserDefaultsMinorVersion 532 | 2 533 | ToolbarDisplayMode 534 | 1 535 | ToolbarIsVisible 536 | 537 | ToolbarSizeMode 538 | 1 539 | Type 540 | Perspectives 541 | UpdateMessage 542 | 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 '%@'? 543 | WindowJustification 544 | 5 545 | WindowOrderList 546 | 547 | 1CD10A99069EF8BA00B06720 548 | D155F73313A2DBAF00A0A56A 549 | /Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/Demo/KeyboardNumberPad.xcodeproj 550 | 551 | WindowString 552 | 0 116 2560 1302 0 0 2560 1418 553 | WindowToolsV3 554 | 555 | 556 | FirstTimeWindowDisplayed 557 | 558 | Identifier 559 | windowTool.build 560 | IsVertical 561 | 562 | Layout 563 | 564 | 565 | Dock 566 | 567 | 568 | ContentConfiguration 569 | 570 | PBXProjectModuleGUID 571 | 1CD0528F0623707200166675 572 | PBXProjectModuleLabel 573 | 574 | StatusBarVisibility 575 | 576 | 577 | GeometryConfiguration 578 | 579 | Frame 580 | {{0, 0}, {972, 485}} 581 | RubberWindowFrame 582 | 42 605 972 767 0 0 2560 1418 583 | 584 | Module 585 | PBXNavigatorGroup 586 | Proportion 587 | 485pt 588 | 589 | 590 | ContentConfiguration 591 | 592 | PBXProjectModuleGUID 593 | XCMainBuildResultsModuleGUID 594 | PBXProjectModuleLabel 595 | Build Results 596 | XCBuildResultsTrigger_Collapse 597 | 1021 598 | XCBuildResultsTrigger_Open 599 | 1011 600 | 601 | GeometryConfiguration 602 | 603 | Frame 604 | {{0, 490}, {972, 236}} 605 | RubberWindowFrame 606 | 42 605 972 767 0 0 2560 1418 607 | 608 | Module 609 | PBXBuildResultsModule 610 | Proportion 611 | 236pt 612 | 613 | 614 | Proportion 615 | 726pt 616 | 617 | 618 | Name 619 | Build Results 620 | ServiceClasses 621 | 622 | PBXBuildResultsModule 623 | 624 | StatusbarIsVisible 625 | 626 | TableOfContents 627 | 628 | D155F73313A2DBAF00A0A56A 629 | D146513213A9105D000D7DD6 630 | 1CD0528F0623707200166675 631 | XCMainBuildResultsModuleGUID 632 | 633 | ToolbarConfiguration 634 | xcode.toolbar.config.buildV3 635 | WindowContentMinSize 636 | 486 300 637 | WindowString 638 | 42 605 972 767 0 0 2560 1418 639 | WindowToolGUID 640 | D155F73313A2DBAF00A0A56A 641 | WindowToolIsVisible 642 | 643 | 644 | 645 | FirstTimeWindowDisplayed 646 | 647 | Identifier 648 | windowTool.debugger 649 | IsVertical 650 | 651 | Layout 652 | 653 | 654 | Dock 655 | 656 | 657 | ContentConfiguration 658 | 659 | Debugger 660 | 661 | HorizontalSplitView 662 | 663 | _collapsingFrameDimension 664 | 0.0 665 | _indexOfCollapsedView 666 | 0 667 | _percentageOfCollapsedView 668 | 0.0 669 | isCollapsed 670 | yes 671 | sizes 672 | 673 | {{0, 0}, {316, 203}} 674 | {{316, 0}, {378, 203}} 675 | 676 | 677 | VerticalSplitView 678 | 679 | _collapsingFrameDimension 680 | 0.0 681 | _indexOfCollapsedView 682 | 0 683 | _percentageOfCollapsedView 684 | 0.0 685 | isCollapsed 686 | yes 687 | sizes 688 | 689 | {{0, 0}, {694, 203}} 690 | {{0, 203}, {694, 178}} 691 | 692 | 693 | 694 | LauncherConfigVersion 695 | 8 696 | PBXProjectModuleGUID 697 | 1C162984064C10D400B95A72 698 | PBXProjectModuleLabel 699 | Debug - GLUTExamples (Underwater) 700 | 701 | GeometryConfiguration 702 | 703 | DebugConsoleVisible 704 | None 705 | DebugConsoleWindowFrame 706 | {{200, 200}, {500, 300}} 707 | DebugSTDIOWindowFrame 708 | {{200, 200}, {500, 300}} 709 | Frame 710 | {{0, 0}, {694, 381}} 711 | PBXDebugSessionStackFrameViewKey 712 | 713 | DebugVariablesTableConfiguration 714 | 715 | Name 716 | 145 717 | Value 718 | 110 719 | Summary 720 | 98 721 | 722 | Frame 723 | {{316, 0}, {378, 203}} 724 | RubberWindowFrame 725 | 21 973 694 422 0 0 2560 1418 726 | 727 | RubberWindowFrame 728 | 21 973 694 422 0 0 2560 1418 729 | 730 | Module 731 | PBXDebugSessionModule 732 | Proportion 733 | 381pt 734 | 735 | 736 | Proportion 737 | 381pt 738 | 739 | 740 | Name 741 | Debugger 742 | ServiceClasses 743 | 744 | PBXDebugSessionModule 745 | 746 | StatusbarIsVisible 747 | 748 | TableOfContents 749 | 750 | 1CD10A99069EF8BA00B06720 751 | D146513613A9109F000D7DD6 752 | 1C162984064C10D400B95A72 753 | D146513713A9109F000D7DD6 754 | D146513813A9109F000D7DD6 755 | D146513913A9109F000D7DD6 756 | D146513A13A9109F000D7DD6 757 | D146513B13A9109F000D7DD6 758 | 759 | ToolbarConfiguration 760 | xcode.toolbar.config.debugV3 761 | WindowString 762 | 21 973 694 422 0 0 2560 1418 763 | WindowToolGUID 764 | 1CD10A99069EF8BA00B06720 765 | WindowToolIsVisible 766 | 767 | 768 | 769 | Identifier 770 | windowTool.find 771 | Layout 772 | 773 | 774 | Dock 775 | 776 | 777 | Dock 778 | 779 | 780 | ContentConfiguration 781 | 782 | PBXProjectModuleGUID 783 | 1CDD528C0622207200134675 784 | PBXProjectModuleLabel 785 | <No Editor> 786 | PBXSplitModuleInNavigatorKey 787 | 788 | Split0 789 | 790 | PBXProjectModuleGUID 791 | 1CD0528D0623707200166675 792 | 793 | SplitCount 794 | 1 795 | 796 | StatusBarVisibility 797 | 1 798 | 799 | GeometryConfiguration 800 | 801 | Frame 802 | {{0, 0}, {781, 167}} 803 | RubberWindowFrame 804 | 62 385 781 470 0 0 1440 878 805 | 806 | Module 807 | PBXNavigatorGroup 808 | Proportion 809 | 781pt 810 | 811 | 812 | Proportion 813 | 50% 814 | 815 | 816 | BecomeActive 817 | 1 818 | ContentConfiguration 819 | 820 | PBXProjectModuleGUID 821 | 1CD0528E0623707200166675 822 | PBXProjectModuleLabel 823 | Project Find 824 | 825 | GeometryConfiguration 826 | 827 | Frame 828 | {{8, 0}, {773, 254}} 829 | RubberWindowFrame 830 | 62 385 781 470 0 0 1440 878 831 | 832 | Module 833 | PBXProjectFindModule 834 | Proportion 835 | 50% 836 | 837 | 838 | Proportion 839 | 428pt 840 | 841 | 842 | Name 843 | Project Find 844 | ServiceClasses 845 | 846 | PBXProjectFindModule 847 | 848 | StatusbarIsVisible 849 | 1 850 | TableOfContents 851 | 852 | 1C530D57069F1CE1000CFCEE 853 | 1C530D58069F1CE1000CFCEE 854 | 1C530D59069F1CE1000CFCEE 855 | 1CDD528C0622207200134675 856 | 1C530D5A069F1CE1000CFCEE 857 | 1CE0B1FE06471DED0097A5F4 858 | 1CD0528E0623707200166675 859 | 860 | WindowString 861 | 62 385 781 470 0 0 1440 878 862 | WindowToolGUID 863 | 1C530D57069F1CE1000CFCEE 864 | WindowToolIsVisible 865 | 0 866 | 867 | 868 | Identifier 869 | MENUSEPARATOR 870 | 871 | 872 | FirstTimeWindowDisplayed 873 | 874 | Identifier 875 | windowTool.debuggerConsole 876 | IsVertical 877 | 878 | Layout 879 | 880 | 881 | Dock 882 | 883 | 884 | BecomeActive 885 | 886 | ContentConfiguration 887 | 888 | PBXProjectModuleGUID 889 | 1C78EAAC065D492600B07095 890 | PBXProjectModuleLabel 891 | Debugger Console 892 | 893 | GeometryConfiguration 894 | 895 | Frame 896 | {{0, 0}, {1001, 1165}} 897 | RubberWindowFrame 898 | 21 189 1001 1206 0 0 2560 1418 899 | 900 | Module 901 | PBXDebugCLIModule 902 | Proportion 903 | 1165pt 904 | 905 | 906 | Proportion 907 | 1165pt 908 | 909 | 910 | Name 911 | Debugger Console 912 | ServiceClasses 913 | 914 | PBXDebugCLIModule 915 | 916 | StatusbarIsVisible 917 | 918 | TableOfContents 919 | 920 | 1C78EAAD065D492600B07095 921 | D1AD7CDC13A7823400DCAEF0 922 | 1C78EAAC065D492600B07095 923 | 924 | ToolbarConfiguration 925 | xcode.toolbar.config.consoleV3 926 | WindowString 927 | 21 189 1001 1206 0 0 2560 1418 928 | WindowToolGUID 929 | 1C78EAAD065D492600B07095 930 | WindowToolIsVisible 931 | 932 | 933 | 934 | Identifier 935 | windowTool.snapshots 936 | Layout 937 | 938 | 939 | Dock 940 | 941 | 942 | Module 943 | XCSnapshotModule 944 | Proportion 945 | 100% 946 | 947 | 948 | Proportion 949 | 100% 950 | 951 | 952 | Name 953 | Snapshots 954 | ServiceClasses 955 | 956 | XCSnapshotModule 957 | 958 | StatusbarIsVisible 959 | Yes 960 | ToolbarConfiguration 961 | xcode.toolbar.config.snapshots 962 | WindowString 963 | 315 824 300 550 0 0 1440 878 964 | WindowToolIsVisible 965 | Yes 966 | 967 | 968 | Identifier 969 | windowTool.scm 970 | Layout 971 | 972 | 973 | Dock 974 | 975 | 976 | ContentConfiguration 977 | 978 | PBXProjectModuleGUID 979 | 1C78EAB2065D492600B07095 980 | PBXProjectModuleLabel 981 | <No Editor> 982 | PBXSplitModuleInNavigatorKey 983 | 984 | Split0 985 | 986 | PBXProjectModuleGUID 987 | 1C78EAB3065D492600B07095 988 | 989 | SplitCount 990 | 1 991 | 992 | StatusBarVisibility 993 | 1 994 | 995 | GeometryConfiguration 996 | 997 | Frame 998 | {{0, 0}, {452, 0}} 999 | RubberWindowFrame 1000 | 743 379 452 308 0 0 1280 1002 1001 | 1002 | Module 1003 | PBXNavigatorGroup 1004 | Proportion 1005 | 0pt 1006 | 1007 | 1008 | BecomeActive 1009 | 1 1010 | ContentConfiguration 1011 | 1012 | PBXProjectModuleGUID 1013 | 1CD052920623707200166675 1014 | PBXProjectModuleLabel 1015 | SCM 1016 | 1017 | GeometryConfiguration 1018 | 1019 | ConsoleFrame 1020 | {{0, 259}, {452, 0}} 1021 | Frame 1022 | {{0, 7}, {452, 259}} 1023 | RubberWindowFrame 1024 | 743 379 452 308 0 0 1280 1002 1025 | TableConfiguration 1026 | 1027 | Status 1028 | 30 1029 | FileName 1030 | 199 1031 | Path 1032 | 197.0950012207031 1033 | 1034 | TableFrame 1035 | {{0, 0}, {452, 250}} 1036 | 1037 | Module 1038 | PBXCVSModule 1039 | Proportion 1040 | 262pt 1041 | 1042 | 1043 | Proportion 1044 | 266pt 1045 | 1046 | 1047 | Name 1048 | SCM 1049 | ServiceClasses 1050 | 1051 | PBXCVSModule 1052 | 1053 | StatusbarIsVisible 1054 | 1 1055 | TableOfContents 1056 | 1057 | 1C78EAB4065D492600B07095 1058 | 1C78EAB5065D492600B07095 1059 | 1C78EAB2065D492600B07095 1060 | 1CD052920623707200166675 1061 | 1062 | ToolbarConfiguration 1063 | xcode.toolbar.config.scm 1064 | WindowString 1065 | 743 379 452 308 0 0 1280 1002 1066 | 1067 | 1068 | Identifier 1069 | windowTool.breakpoints 1070 | IsVertical 1071 | 0 1072 | Layout 1073 | 1074 | 1075 | Dock 1076 | 1077 | 1078 | BecomeActive 1079 | 1 1080 | ContentConfiguration 1081 | 1082 | PBXBottomSmartGroupGIDs 1083 | 1084 | 1C77FABC04509CD000000102 1085 | 1086 | PBXProjectModuleGUID 1087 | 1CE0B1FE06471DED0097A5F4 1088 | PBXProjectModuleLabel 1089 | Files 1090 | PBXProjectStructureProvided 1091 | no 1092 | PBXSmartGroupTreeModuleColumnData 1093 | 1094 | PBXSmartGroupTreeModuleColumnWidthsKey 1095 | 1096 | 168 1097 | 1098 | PBXSmartGroupTreeModuleColumnsKey_v4 1099 | 1100 | MainColumn 1101 | 1102 | 1103 | PBXSmartGroupTreeModuleOutlineStateKey_v7 1104 | 1105 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 1106 | 1107 | 1C77FABC04509CD000000102 1108 | 1109 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 1110 | 1111 | 1112 | 0 1113 | 1114 | 1115 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 1116 | {{0, 0}, {168, 350}} 1117 | 1118 | PBXTopSmartGroupGIDs 1119 | 1120 | XCIncludePerspectivesSwitch 1121 | 0 1122 | 1123 | GeometryConfiguration 1124 | 1125 | Frame 1126 | {{0, 0}, {185, 368}} 1127 | GroupTreeTableConfiguration 1128 | 1129 | MainColumn 1130 | 168 1131 | 1132 | RubberWindowFrame 1133 | 315 424 744 409 0 0 1440 878 1134 | 1135 | Module 1136 | PBXSmartGroupTreeModule 1137 | Proportion 1138 | 185pt 1139 | 1140 | 1141 | ContentConfiguration 1142 | 1143 | PBXProjectModuleGUID 1144 | 1CA1AED706398EBD00589147 1145 | PBXProjectModuleLabel 1146 | Detail 1147 | 1148 | GeometryConfiguration 1149 | 1150 | Frame 1151 | {{190, 0}, {554, 368}} 1152 | RubberWindowFrame 1153 | 315 424 744 409 0 0 1440 878 1154 | 1155 | Module 1156 | XCDetailModule 1157 | Proportion 1158 | 554pt 1159 | 1160 | 1161 | Proportion 1162 | 368pt 1163 | 1164 | 1165 | MajorVersion 1166 | 3 1167 | MinorVersion 1168 | 0 1169 | Name 1170 | Breakpoints 1171 | ServiceClasses 1172 | 1173 | PBXSmartGroupTreeModule 1174 | XCDetailModule 1175 | 1176 | StatusbarIsVisible 1177 | 1 1178 | TableOfContents 1179 | 1180 | 1CDDB66807F98D9800BB5817 1181 | 1CDDB66907F98D9800BB5817 1182 | 1CE0B1FE06471DED0097A5F4 1183 | 1CA1AED706398EBD00589147 1184 | 1185 | ToolbarConfiguration 1186 | xcode.toolbar.config.breakpointsV3 1187 | WindowString 1188 | 315 424 744 409 0 0 1440 878 1189 | WindowToolGUID 1190 | 1CDDB66807F98D9800BB5817 1191 | WindowToolIsVisible 1192 | 1 1193 | 1194 | 1195 | Identifier 1196 | windowTool.debugAnimator 1197 | Layout 1198 | 1199 | 1200 | Dock 1201 | 1202 | 1203 | Module 1204 | PBXNavigatorGroup 1205 | Proportion 1206 | 100% 1207 | 1208 | 1209 | Proportion 1210 | 100% 1211 | 1212 | 1213 | Name 1214 | Debug Visualizer 1215 | ServiceClasses 1216 | 1217 | PBXNavigatorGroup 1218 | 1219 | StatusbarIsVisible 1220 | 1 1221 | ToolbarConfiguration 1222 | xcode.toolbar.config.debugAnimatorV3 1223 | WindowString 1224 | 100 100 700 500 0 0 1280 1002 1225 | 1226 | 1227 | Identifier 1228 | windowTool.bookmarks 1229 | Layout 1230 | 1231 | 1232 | Dock 1233 | 1234 | 1235 | Module 1236 | PBXBookmarksModule 1237 | Proportion 1238 | 100% 1239 | 1240 | 1241 | Proportion 1242 | 100% 1243 | 1244 | 1245 | Name 1246 | Bookmarks 1247 | ServiceClasses 1248 | 1249 | PBXBookmarksModule 1250 | 1251 | StatusbarIsVisible 1252 | 0 1253 | WindowString 1254 | 538 42 401 187 0 0 1280 1002 1255 | 1256 | 1257 | Identifier 1258 | windowTool.projectFormatConflicts 1259 | Layout 1260 | 1261 | 1262 | Dock 1263 | 1264 | 1265 | Module 1266 | XCProjectFormatConflictsModule 1267 | Proportion 1268 | 100% 1269 | 1270 | 1271 | Proportion 1272 | 100% 1273 | 1274 | 1275 | Name 1276 | Project Format Conflicts 1277 | ServiceClasses 1278 | 1279 | XCProjectFormatConflictsModule 1280 | 1281 | StatusbarIsVisible 1282 | 0 1283 | WindowContentMinSize 1284 | 450 300 1285 | WindowString 1286 | 50 850 472 307 0 0 1440 877 1287 | 1288 | 1289 | Identifier 1290 | windowTool.classBrowser 1291 | Layout 1292 | 1293 | 1294 | Dock 1295 | 1296 | 1297 | BecomeActive 1298 | 1 1299 | ContentConfiguration 1300 | 1301 | OptionsSetName 1302 | Hierarchy, all classes 1303 | PBXProjectModuleGUID 1304 | 1CA6456E063B45B4001379D8 1305 | PBXProjectModuleLabel 1306 | Class Browser - NSObject 1307 | 1308 | GeometryConfiguration 1309 | 1310 | ClassesFrame 1311 | {{0, 0}, {374, 96}} 1312 | ClassesTreeTableConfiguration 1313 | 1314 | PBXClassNameColumnIdentifier 1315 | 208 1316 | PBXClassBookColumnIdentifier 1317 | 22 1318 | 1319 | Frame 1320 | {{0, 0}, {630, 331}} 1321 | MembersFrame 1322 | {{0, 105}, {374, 395}} 1323 | MembersTreeTableConfiguration 1324 | 1325 | PBXMemberTypeIconColumnIdentifier 1326 | 22 1327 | PBXMemberNameColumnIdentifier 1328 | 216 1329 | PBXMemberTypeColumnIdentifier 1330 | 97 1331 | PBXMemberBookColumnIdentifier 1332 | 22 1333 | 1334 | PBXModuleWindowStatusBarHidden2 1335 | 1 1336 | RubberWindowFrame 1337 | 385 179 630 352 0 0 1440 878 1338 | 1339 | Module 1340 | PBXClassBrowserModule 1341 | Proportion 1342 | 332pt 1343 | 1344 | 1345 | Proportion 1346 | 332pt 1347 | 1348 | 1349 | Name 1350 | Class Browser 1351 | ServiceClasses 1352 | 1353 | PBXClassBrowserModule 1354 | 1355 | StatusbarIsVisible 1356 | 0 1357 | TableOfContents 1358 | 1359 | 1C0AD2AF069F1E9B00FABCE6 1360 | 1C0AD2B0069F1E9B00FABCE6 1361 | 1CA6456E063B45B4001379D8 1362 | 1363 | ToolbarConfiguration 1364 | xcode.toolbar.config.classbrowser 1365 | WindowString 1366 | 385 179 630 352 0 0 1440 878 1367 | WindowToolGUID 1368 | 1C0AD2AF069F1E9B00FABCE6 1369 | WindowToolIsVisible 1370 | 0 1371 | 1372 | 1373 | Identifier 1374 | windowTool.refactoring 1375 | IncludeInToolsMenu 1376 | 0 1377 | Layout 1378 | 1379 | 1380 | Dock 1381 | 1382 | 1383 | BecomeActive 1384 | 1 1385 | GeometryConfiguration 1386 | 1387 | Frame 1388 | {0, 0}, {500, 335} 1389 | RubberWindowFrame 1390 | {0, 0}, {500, 335} 1391 | 1392 | Module 1393 | XCRefactoringModule 1394 | Proportion 1395 | 100% 1396 | 1397 | 1398 | Proportion 1399 | 100% 1400 | 1401 | 1402 | Name 1403 | Refactoring 1404 | ServiceClasses 1405 | 1406 | XCRefactoringModule 1407 | 1408 | WindowString 1409 | 200 200 500 356 0 0 1920 1200 1410 | 1411 | 1412 | 1413 | 1414 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad.xcodeproj/vinogradov.pbxuser: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | 1D3623240D0F684500981E51 /* KeyboardNumberPadAppDelegate.h */ = { 4 | uiCtxt = { 5 | sepNavIntBoundsRect = "{{0, 0}, {2122, 1224}}"; 6 | sepNavSelRange = "{530, 0}"; 7 | sepNavVisRange = "{0, 538}"; 8 | }; 9 | }; 10 | 1D3623250D0F684500981E51 /* KeyboardNumberPadAppDelegate.m */ = { 11 | uiCtxt = { 12 | sepNavIntBoundsRect = "{{0, 0}, {2122, 1224}}"; 13 | sepNavSelRange = "{0, 0}"; 14 | sepNavVisRange = "{0, 2779}"; 15 | }; 16 | }; 17 | 1D6058900D05DD3D006BFB54 /* KeyboardNumberPad */ = { 18 | activeExec = 0; 19 | executables = ( 20 | D155F71513A2D9B300A0A56A /* KeyboardNumberPad */, 21 | ); 22 | }; 23 | 28D7ACF60DDB3853001CB0EB /* KeyboardNumberPadViewController.h */ = { 24 | uiCtxt = { 25 | sepNavIntBoundsRect = "{{0, 0}, {2122, 1201}}"; 26 | sepNavSelRange = "{332, 0}"; 27 | sepNavVisRange = "{0, 340}"; 28 | }; 29 | }; 30 | 28D7ACF70DDB3853001CB0EB /* KeyboardNumberPadViewController.m */ = { 31 | uiCtxt = { 32 | sepNavIntBoundsRect = "{{0, 0}, {2122, 1224}}"; 33 | sepNavSelRange = "{510, 0}"; 34 | sepNavVisRange = "{0, 3526}"; 35 | }; 36 | }; 37 | 29B97313FDCFA39411CA2CEA /* Project object */ = { 38 | activeBuildConfigurationName = Debug; 39 | activeExecutable = D155F71513A2D9B300A0A56A /* KeyboardNumberPad */; 40 | activeSDKPreference = iphonesimulator4.3; 41 | activeTarget = 1D6058900D05DD3D006BFB54 /* KeyboardNumberPad */; 42 | addToTargets = ( 43 | 1D6058900D05DD3D006BFB54 /* KeyboardNumberPad */, 44 | ); 45 | breakpoints = ( 46 | ); 47 | codeSenseManager = D155F71E13A2D9D400A0A56A /* Code sense */; 48 | executables = ( 49 | D155F71513A2D9B300A0A56A /* KeyboardNumberPad */, 50 | ); 51 | perUserDictionary = { 52 | PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { 53 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; 54 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; 55 | PBXFileTableDataSourceColumnWidthsKey = ( 56 | 20, 57 | 1959, 58 | 20, 59 | 48, 60 | 43, 61 | 43, 62 | 20, 63 | ); 64 | PBXFileTableDataSourceColumnsKey = ( 65 | PBXFileDataSource_FiletypeID, 66 | PBXFileDataSource_Filename_ColumnID, 67 | PBXFileDataSource_Built_ColumnID, 68 | PBXFileDataSource_ObjectSize_ColumnID, 69 | PBXFileDataSource_Errors_ColumnID, 70 | PBXFileDataSource_Warnings_ColumnID, 71 | PBXFileDataSource_Target_ColumnID, 72 | ); 73 | }; 74 | PBXPerProjectTemplateStateSaveDate = 329846867; 75 | PBXWorkspaceStateSaveDate = 329846867; 76 | }; 77 | perUserProjectItems = { 78 | D14650DC13A8FF2C000D7DD6 = D14650DC13A8FF2C000D7DD6 /* PBXTextBookmark */; 79 | D14650DD13A8FF2C000D7DD6 = D14650DD13A8FF2C000D7DD6 /* PBXTextBookmark */; 80 | D14650E813A9009D000D7DD6 = D14650E813A9009D000D7DD6 /* PBXTextBookmark */; 81 | D146512F13A9105D000D7DD6 /* PBXTextBookmark */ = D146512F13A9105D000D7DD6 /* PBXTextBookmark */; 82 | D146513513A9109F000D7DD6 /* PBXTextBookmark */ = D146513513A9109F000D7DD6 /* PBXTextBookmark */; 83 | D1AD7CC213A7823400DCAEF0 = D1AD7CC213A7823400DCAEF0 /* PlistBookmark */; 84 | D1AD7CC313A7823400DCAEF0 = D1AD7CC313A7823400DCAEF0 /* PBXTextBookmark */; 85 | D1AD7CC413A7823400DCAEF0 = D1AD7CC413A7823400DCAEF0 /* PBXTextBookmark */; 86 | D1AD7CC513A7823400DCAEF0 = D1AD7CC513A7823400DCAEF0 /* PBXTextBookmark */; 87 | D1AD7CC713A7823400DCAEF0 = D1AD7CC713A7823400DCAEF0 /* PBXBookmark */; 88 | D1AD7CC913A7823400DCAEF0 = D1AD7CC913A7823400DCAEF0 /* PBXBookmark */; 89 | D1AD7CCB13A7823400DCAEF0 = D1AD7CCB13A7823400DCAEF0 /* PBXBookmark */; 90 | D1AD7CCD13A7823400DCAEF0 = D1AD7CCD13A7823400DCAEF0 /* PBXBookmark */; 91 | D1AD7CCF13A7823400DCAEF0 = D1AD7CCF13A7823400DCAEF0 /* PBXBookmark */; 92 | D1AD7CD113A7823400DCAEF0 = D1AD7CD113A7823400DCAEF0 /* PBXBookmark */; 93 | D1AD7CD313A7823400DCAEF0 = D1AD7CD313A7823400DCAEF0 /* PBXTextBookmark */; 94 | D1CF0AE613A68FAC00A62F51 = D1CF0AE613A68FAC00A62F51 /* PBXBookmark */; 95 | D1FC790913A5798E0062ADFA = D1FC790913A5798E0062ADFA /* PBXTextBookmark */; 96 | D1FC79C713A62F120062ADFA = D1FC79C713A62F120062ADFA /* PBXTextBookmark */; 97 | }; 98 | sourceControlManager = D155F71D13A2D9D400A0A56A /* Source Control */; 99 | userBuildSettings = { 100 | }; 101 | }; 102 | D14650DC13A8FF2C000D7DD6 /* PBXTextBookmark */ = { 103 | isa = PBXTextBookmark; 104 | fRef = 28D7ACF70DDB3853001CB0EB /* KeyboardNumberPadViewController.m */; 105 | name = "KeyboardNumberPadViewController.m: 26"; 106 | rLen = 0; 107 | rLoc = 510; 108 | rType = 0; 109 | vrLen = 3526; 110 | vrLoc = 0; 111 | }; 112 | D14650DD13A8FF2C000D7DD6 /* PBXTextBookmark */ = { 113 | isa = PBXTextBookmark; 114 | fRef = D1CF0B1913A6A09200A62F51 /* AMTextFieldNumberPad.h */; 115 | name = "AMTextFieldNumberPad.h: 1"; 116 | rLen = 0; 117 | rLoc = 0; 118 | rType = 0; 119 | vrLen = 781; 120 | vrLoc = 0; 121 | }; 122 | D14650E813A9009D000D7DD6 /* PBXTextBookmark */ = { 123 | isa = PBXTextBookmark; 124 | fRef = D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */; 125 | name = "AMTextFieldNumberPad.m: 66"; 126 | rLen = 0; 127 | rLoc = 360; 128 | rType = 0; 129 | vrLen = 2511; 130 | vrLoc = 360; 131 | }; 132 | D146512F13A9105D000D7DD6 /* PBXTextBookmark */ = { 133 | isa = PBXTextBookmark; 134 | fRef = D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */; 135 | name = "AMTextFieldNumberPad.m: 356"; 136 | rLen = 0; 137 | rLoc = 12236; 138 | rType = 0; 139 | vrLen = 2332; 140 | vrLoc = 9908; 141 | }; 142 | D146513513A9109F000D7DD6 /* PBXTextBookmark */ = { 143 | isa = PBXTextBookmark; 144 | fRef = D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */; 145 | name = "AMTextFieldNumberPad.m: 314"; 146 | rLen = 0; 147 | rLoc = 11341; 148 | rType = 0; 149 | vrLen = 2637; 150 | vrLoc = 0; 151 | }; 152 | D155F71513A2D9B300A0A56A /* KeyboardNumberPad */ = { 153 | isa = PBXExecutable; 154 | activeArgIndices = ( 155 | ); 156 | argumentStrings = ( 157 | ); 158 | autoAttachOnCrash = 1; 159 | breakpointsEnabled = 0; 160 | configStateDict = { 161 | }; 162 | customDataFormattersEnabled = 1; 163 | dataTipCustomDataFormattersEnabled = 1; 164 | dataTipShowTypeColumn = 1; 165 | dataTipSortType = 0; 166 | debuggerPlugin = GDBDebugging; 167 | disassemblyDisplayState = 0; 168 | dylibVariantSuffix = ""; 169 | enableDebugStr = 1; 170 | environmentEntries = ( 171 | ); 172 | executableSystemSymbolLevel = 0; 173 | executableUserSymbolLevel = 0; 174 | libgmallocEnabled = 0; 175 | name = KeyboardNumberPad; 176 | showTypeColumn = 0; 177 | sourceDirectories = ( 178 | ); 179 | }; 180 | D155F71D13A2D9D400A0A56A /* Source Control */ = { 181 | isa = PBXSourceControlManager; 182 | fallbackIsa = XCSourceControlManager; 183 | isSCMEnabled = 0; 184 | scmConfiguration = { 185 | repositoryNamesForRoots = { 186 | "" = ""; 187 | }; 188 | }; 189 | }; 190 | D155F71E13A2D9D400A0A56A /* Code sense */ = { 191 | isa = PBXCodeSenseManager; 192 | indexTemplatePath = ""; 193 | }; 194 | D1AD7CC213A7823400DCAEF0 /* PlistBookmark */ = { 195 | isa = PlistBookmark; 196 | fRef = 8D1107310486CEB800E47090 /* KeyboardNumberPad-Info.plist */; 197 | fallbackIsa = PBXBookmark; 198 | isK = 0; 199 | kPath = ( 200 | ); 201 | name = "/Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/Demo/KeyboardNumberPad-Info.plist"; 202 | rLen = 0; 203 | rLoc = 9223372036854775808; 204 | }; 205 | D1AD7CC313A7823400DCAEF0 /* PBXTextBookmark */ = { 206 | isa = PBXTextBookmark; 207 | fRef = 1D3623240D0F684500981E51 /* KeyboardNumberPadAppDelegate.h */; 208 | name = "KeyboardNumberPadAppDelegate.h: 19"; 209 | rLen = 0; 210 | rLoc = 530; 211 | rType = 0; 212 | vrLen = 538; 213 | vrLoc = 0; 214 | }; 215 | D1AD7CC413A7823400DCAEF0 /* PBXTextBookmark */ = { 216 | isa = PBXTextBookmark; 217 | fRef = 1D3623250D0F684500981E51 /* KeyboardNumberPadAppDelegate.m */; 218 | name = "KeyboardNumberPadAppDelegate.m: 1"; 219 | rLen = 0; 220 | rLoc = 0; 221 | rType = 0; 222 | vrLen = 2779; 223 | vrLoc = 0; 224 | }; 225 | D1AD7CC513A7823400DCAEF0 /* PBXTextBookmark */ = { 226 | isa = PBXTextBookmark; 227 | fRef = D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */; 228 | name = "AMTextFieldNumberPad.m: 320"; 229 | rLen = 0; 230 | rLoc = 11781; 231 | rType = 0; 232 | vrLen = 2892; 233 | vrLoc = 693; 234 | }; 235 | D1AD7CC713A7823400DCAEF0 /* PBXBookmark */ = { 236 | isa = PBXBookmark; 237 | fRef = D1AD7CC813A7823400DCAEF0 /* button_keyboard4_transparent.png */; 238 | }; 239 | D1AD7CC813A7823400DCAEF0 /* button_keyboard4_transparent.png */ = { 240 | isa = PBXFileReference; 241 | lastKnownFileType = image.png; 242 | name = button_keyboard4_transparent.png; 243 | path = "/Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/AMTextFieldNumberPad.bundle/button_keyboard4_transparent.png"; 244 | sourceTree = ""; 245 | }; 246 | D1AD7CC913A7823400DCAEF0 /* PBXBookmark */ = { 247 | isa = PBXBookmark; 248 | fRef = D1AD7CCA13A7823400DCAEF0 /* button_keyboard4_highlighted@2x.png */; 249 | }; 250 | D1AD7CCA13A7823400DCAEF0 /* button_keyboard4_highlighted@2x.png */ = { 251 | isa = PBXFileReference; 252 | lastKnownFileType = image.png; 253 | name = "button_keyboard4_highlighted@2x.png"; 254 | path = "/Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/AMTextFieldNumberPad.bundle/button_keyboard4_highlighted@2x.png"; 255 | sourceTree = ""; 256 | }; 257 | D1AD7CCB13A7823400DCAEF0 /* PBXBookmark */ = { 258 | isa = PBXBookmark; 259 | fRef = D1AD7CCC13A7823400DCAEF0 /* button_keyboard4@2x.png */; 260 | }; 261 | D1AD7CCC13A7823400DCAEF0 /* button_keyboard4@2x.png */ = { 262 | isa = PBXFileReference; 263 | lastKnownFileType = image.png; 264 | name = "button_keyboard4@2x.png"; 265 | path = "/Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/AMTextFieldNumberPad.bundle/button_keyboard4@2x.png"; 266 | sourceTree = ""; 267 | }; 268 | D1AD7CCD13A7823400DCAEF0 /* PBXBookmark */ = { 269 | isa = PBXBookmark; 270 | fRef = D1AD7CCE13A7823400DCAEF0 /* button_keyboard4.png */; 271 | }; 272 | D1AD7CCE13A7823400DCAEF0 /* button_keyboard4.png */ = { 273 | isa = PBXFileReference; 274 | lastKnownFileType = image.png; 275 | name = button_keyboard4.png; 276 | path = "/Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/AMTextFieldNumberPad.bundle/button_keyboard4.png"; 277 | sourceTree = ""; 278 | }; 279 | D1AD7CCF13A7823400DCAEF0 /* PBXBookmark */ = { 280 | isa = PBXBookmark; 281 | fRef = D1AD7CD013A7823400DCAEF0 /* button_keyboard4_highlighted.png */; 282 | }; 283 | D1AD7CD013A7823400DCAEF0 /* button_keyboard4_highlighted.png */ = { 284 | isa = PBXFileReference; 285 | lastKnownFileType = image.png; 286 | name = button_keyboard4_highlighted.png; 287 | path = "/Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/AMTextFieldNumberPad.bundle/button_keyboard4_highlighted.png"; 288 | sourceTree = ""; 289 | }; 290 | D1AD7CD113A7823400DCAEF0 /* PBXBookmark */ = { 291 | isa = PBXBookmark; 292 | fRef = D1AD7CD213A7823400DCAEF0 /* button_keyboard3.png */; 293 | }; 294 | D1AD7CD213A7823400DCAEF0 /* button_keyboard3.png */ = { 295 | isa = PBXFileReference; 296 | lastKnownFileType = image.png; 297 | name = button_keyboard3.png; 298 | path = "/Users/vinogradov/ProjectsiPhone/В работе/AMKeyboardNumberPad/AMTextFieldNumberPad.bundle/button_keyboard3.png"; 299 | sourceTree = ""; 300 | }; 301 | D1AD7CD313A7823400DCAEF0 /* PBXTextBookmark */ = { 302 | isa = PBXTextBookmark; 303 | fRef = 28D7ACF60DDB3853001CB0EB /* KeyboardNumberPadViewController.h */; 304 | name = "KeyboardNumberPadViewController.h: 13"; 305 | rLen = 0; 306 | rLoc = 332; 307 | rType = 0; 308 | vrLen = 340; 309 | vrLoc = 0; 310 | }; 311 | D1CF0AE613A68FAC00A62F51 /* PBXBookmark */ = { 312 | isa = PBXBookmark; 313 | fRef = D1CF0ADA13A68F6000A62F51 /* heart.png */; 314 | }; 315 | D1CF0B1913A6A09200A62F51 /* AMTextFieldNumberPad.h */ = { 316 | uiCtxt = { 317 | sepNavIntBoundsRect = "{{0, 0}, {2122, 1224}}"; 318 | sepNavSelRange = "{0, 0}"; 319 | sepNavVisRange = "{0, 781}"; 320 | }; 321 | }; 322 | D1CF0B1A13A6A09200A62F51 /* AMTextFieldNumberPad.m */ = { 323 | uiCtxt = { 324 | sepNavIntBoundsRect = "{{0, 0}, {2122, 4602}}"; 325 | sepNavSelRange = "{11341, 0}"; 326 | sepNavVisRange = "{0, 2637}"; 327 | }; 328 | }; 329 | D1FC790913A5798E0062ADFA /* PBXTextBookmark */ = { 330 | isa = PBXTextBookmark; 331 | fRef = D1FC790A13A5798E0062ADFA /* UITextField.h */; 332 | name = "UITextField.h: 1"; 333 | rLen = 0; 334 | rLoc = 0; 335 | rType = 0; 336 | vrLen = 5444; 337 | vrLoc = 2930; 338 | }; 339 | D1FC790A13A5798E0062ADFA /* UITextField.h */ = { 340 | isa = PBXFileReference; 341 | lastKnownFileType = sourcecode.c.h; 342 | name = UITextField.h; 343 | path = "/Developer-old/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h"; 344 | sourceTree = ""; 345 | }; 346 | D1FC79C713A62F120062ADFA /* PBXTextBookmark */ = { 347 | isa = PBXTextBookmark; 348 | fRef = D1FC79C813A62F120062ADFA /* KalTileView.m */; 349 | name = "KalTileView.m: 56"; 350 | rLen = 11; 351 | rLoc = 1994; 352 | rType = 0; 353 | vrLen = 3575; 354 | vrLoc = 0; 355 | }; 356 | D1FC79C813A62F120062ADFA /* KalTileView.m */ = { 357 | isa = PBXFileReference; 358 | lastKnownFileType = sourcecode.c.objc; 359 | name = KalTileView.m; 360 | path = "/Users/vinogradov/ProjectsiPhone/В работе/BookAero/Source/Framework/Kal/KalTileView.m"; 361 | sourceTree = ""; 362 | }; 363 | } 364 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad.xcodeproj/xcuserdata/vinogradov.xcuserdatad/xcschemes/KeyboardNumberPad.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 39 | 40 | 46 | 47 | 48 | 49 | 50 | 51 | 56 | 57 | 63 | 64 | 65 | 66 | 68 | 69 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad.xcodeproj/xcuserdata/vinogradov.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KeyboardNumberPad.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 1D6058900D05DD3D006BFB54 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPadViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11A480b 6 | 851 7 | 1127 8 | 561.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 141 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 | 44 | YES 45 | 46 | 47 | 292 48 | {{20, 20}, {280, 31}} 49 | 50 | _NS:156 51 | NO 52 | YES 53 | IBCocoaTouchFramework 54 | 0 55 | 56 | 3 57 | Из Interface Builder 58 | 59 | 3 60 | MAA 61 | 62 | 2 63 | 64 | 65 | YES 66 | 17 67 | 68 | 4 69 | 1 70 | IBCocoaTouchFramework 71 | 72 | 73 | 74 | {320, 460} 75 | 76 | 77 | 10 78 | 79 | 549453824 80 | {84, 1} 81 | 82 | YES 83 | 84 | YES 85 | 86 | 87 | 88 | TU0AKgAAAVjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ 89 | y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ 90 | xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ 91 | xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ 92 | xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ 93 | xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P8ADQEAAAMAAAABAFQAAAEB 94 | AAMAAAABAAEAAAECAAMAAAAEAAAB+gEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES 95 | AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABAAEAAAEXAAQAAAABAAABUAEcAAMAAAABAAEAAAFS 96 | AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA 97 | 98 | 99 | 100 | 101 | 102 | 3 103 | MCAwAA 104 | 105 | 106 | groupTableViewBackgroundColor 107 | 108 | NO 109 | 110 | IBCocoaTouchFramework 111 | 112 | 113 | 114 | 115 | YES 116 | 117 | 118 | view 119 | 120 | 121 | 122 | 7 123 | 124 | 125 | 126 | textField 127 | 128 | 129 | 130 | 15 131 | 132 | 133 | 134 | 135 | YES 136 | 137 | 0 138 | 139 | 140 | 141 | 142 | 143 | -1 144 | 145 | 146 | File's Owner 147 | 148 | 149 | -2 150 | 151 | 152 | 153 | 154 | 6 155 | 156 | 157 | YES 158 | 159 | 160 | 161 | 162 | 163 | 14 164 | 165 | 166 | 167 | 168 | 169 | 170 | YES 171 | 172 | YES 173 | -1.CustomClassName 174 | -2.CustomClassName 175 | 14.CustomClassName 176 | 14.IBPluginDependency 177 | 6.IBEditorWindowLastContentRect 178 | 6.IBPluginDependency 179 | 180 | 181 | YES 182 | KeyboardNumberPadViewController 183 | UIResponder 184 | AMTextFieldNumberPad 185 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 186 | {{312, 654}, {320, 480}} 187 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 188 | 189 | 190 | 191 | YES 192 | 193 | 194 | YES 195 | 196 | 197 | 198 | 199 | YES 200 | 201 | 202 | YES 203 | 204 | 205 | 206 | 15 207 | 208 | 209 | 210 | YES 211 | 212 | AMTextFieldNumberPad 213 | UITextField 214 | 215 | IBProjectSource 216 | Classes/AMTextFieldNumberPad.h 217 | 218 | 219 | 220 | KeyboardNumberPadViewController 221 | UIViewController 222 | 223 | textField 224 | AMTextFieldNumberPad 225 | 226 | 227 | textField 228 | 229 | textField 230 | AMTextFieldNumberPad 231 | 232 | 233 | 234 | IBProjectSource 235 | Classes/KeyboardNumberPadViewController.h 236 | 237 | 238 | 239 | 240 | YES 241 | 242 | NSObject 243 | 244 | IBFrameworkSource 245 | Foundation.framework/Headers/NSError.h 246 | 247 | 248 | 249 | NSObject 250 | 251 | IBFrameworkSource 252 | Foundation.framework/Headers/NSFileManager.h 253 | 254 | 255 | 256 | NSObject 257 | 258 | IBFrameworkSource 259 | Foundation.framework/Headers/NSKeyValueCoding.h 260 | 261 | 262 | 263 | NSObject 264 | 265 | IBFrameworkSource 266 | Foundation.framework/Headers/NSKeyValueObserving.h 267 | 268 | 269 | 270 | NSObject 271 | 272 | IBFrameworkSource 273 | Foundation.framework/Headers/NSKeyedArchiver.h 274 | 275 | 276 | 277 | NSObject 278 | 279 | IBFrameworkSource 280 | Foundation.framework/Headers/NSObject.h 281 | 282 | 283 | 284 | NSObject 285 | 286 | IBFrameworkSource 287 | Foundation.framework/Headers/NSRunLoop.h 288 | 289 | 290 | 291 | NSObject 292 | 293 | IBFrameworkSource 294 | Foundation.framework/Headers/NSThread.h 295 | 296 | 297 | 298 | NSObject 299 | 300 | IBFrameworkSource 301 | Foundation.framework/Headers/NSURL.h 302 | 303 | 304 | 305 | NSObject 306 | 307 | IBFrameworkSource 308 | Foundation.framework/Headers/NSURLConnection.h 309 | 310 | 311 | 312 | NSObject 313 | 314 | IBFrameworkSource 315 | UIKit.framework/Headers/UIAccessibility.h 316 | 317 | 318 | 319 | NSObject 320 | 321 | IBFrameworkSource 322 | UIKit.framework/Headers/UINibLoading.h 323 | 324 | 325 | 326 | NSObject 327 | 328 | IBFrameworkSource 329 | UIKit.framework/Headers/UIResponder.h 330 | 331 | 332 | 333 | UIControl 334 | UIView 335 | 336 | IBFrameworkSource 337 | UIKit.framework/Headers/UIControl.h 338 | 339 | 340 | 341 | UIResponder 342 | NSObject 343 | 344 | 345 | 346 | UISearchBar 347 | UIView 348 | 349 | IBFrameworkSource 350 | UIKit.framework/Headers/UISearchBar.h 351 | 352 | 353 | 354 | UISearchDisplayController 355 | NSObject 356 | 357 | IBFrameworkSource 358 | UIKit.framework/Headers/UISearchDisplayController.h 359 | 360 | 361 | 362 | UITextField 363 | UIControl 364 | 365 | IBFrameworkSource 366 | UIKit.framework/Headers/UITextField.h 367 | 368 | 369 | 370 | UIView 371 | 372 | IBFrameworkSource 373 | UIKit.framework/Headers/UIPrintFormatter.h 374 | 375 | 376 | 377 | UIView 378 | 379 | 380 | 381 | UIView 382 | UIResponder 383 | 384 | IBFrameworkSource 385 | UIKit.framework/Headers/UIView.h 386 | 387 | 388 | 389 | UIViewController 390 | 391 | IBFrameworkSource 392 | UIKit.framework/Headers/UINavigationController.h 393 | 394 | 395 | 396 | UIViewController 397 | 398 | IBFrameworkSource 399 | UIKit.framework/Headers/UIPopoverController.h 400 | 401 | 402 | 403 | UIViewController 404 | 405 | IBFrameworkSource 406 | UIKit.framework/Headers/UISplitViewController.h 407 | 408 | 409 | 410 | UIViewController 411 | 412 | IBFrameworkSource 413 | UIKit.framework/Headers/UITabBarController.h 414 | 415 | 416 | 417 | UIViewController 418 | UIResponder 419 | 420 | IBFrameworkSource 421 | UIKit.framework/Headers/UIViewController.h 422 | 423 | 424 | 425 | 426 | 0 427 | IBCocoaTouchFramework 428 | 429 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 430 | 431 | 432 | 433 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 434 | 435 | 436 | YES 437 | KeyboardNumberPad.xcodeproj 438 | 3 439 | 141 440 | 441 | 442 | -------------------------------------------------------------------------------- /Demo/KeyboardNumberPad_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'KeyboardNumberPad' target in the 'KeyboardNumberPad' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #import 8 | #endif 9 | -------------------------------------------------------------------------------- /Demo/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 | KeyboardNumberPadViewController 45 | 46 | 47 | 1 48 | 49 | IBCocoaTouchFramework 50 | NO 51 | 52 | 53 | 54 | 292 55 | {320, 480} 56 | 57 | 1 58 | MSAxIDEAA 59 | 60 | NO 61 | NO 62 | 63 | IBCocoaTouchFramework 64 | YES 65 | 66 | 67 | 68 | 69 | YES 70 | 71 | 72 | delegate 73 | 74 | 75 | 76 | 4 77 | 78 | 79 | 80 | viewController 81 | 82 | 83 | 84 | 11 85 | 86 | 87 | 88 | window 89 | 90 | 91 | 92 | 14 93 | 94 | 95 | 96 | 97 | YES 98 | 99 | 0 100 | 101 | 102 | 103 | 104 | 105 | -1 106 | 107 | 108 | File's Owner 109 | 110 | 111 | 3 112 | 113 | 114 | KeyboardNumberPad App Delegate 115 | 116 | 117 | -2 118 | 119 | 120 | 121 | 122 | 10 123 | 124 | 125 | 126 | 127 | 12 128 | 129 | 130 | 131 | 132 | 133 | 134 | YES 135 | 136 | YES 137 | -1.CustomClassName 138 | -2.CustomClassName 139 | 10.CustomClassName 140 | 10.IBEditorWindowLastContentRect 141 | 10.IBPluginDependency 142 | 12.IBEditorWindowLastContentRect 143 | 12.IBPluginDependency 144 | 3.CustomClassName 145 | 3.IBPluginDependency 146 | 147 | 148 | YES 149 | UIApplication 150 | UIResponder 151 | KeyboardNumberPadViewController 152 | {{234, 376}, {320, 480}} 153 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 154 | {{525, 346}, {320, 480}} 155 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 156 | KeyboardNumberPadAppDelegate 157 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 158 | 159 | 160 | 161 | YES 162 | 163 | 164 | YES 165 | 166 | 167 | 168 | 169 | YES 170 | 171 | 172 | YES 173 | 174 | 175 | 176 | 15 177 | 178 | 179 | 180 | YES 181 | 182 | UIWindow 183 | UIView 184 | 185 | IBUserSource 186 | 187 | 188 | 189 | 190 | KeyboardNumberPadAppDelegate 191 | NSObject 192 | 193 | YES 194 | 195 | YES 196 | viewController 197 | window 198 | 199 | 200 | YES 201 | KeyboardNumberPadViewController 202 | UIWindow 203 | 204 | 205 | 206 | YES 207 | 208 | YES 209 | viewController 210 | window 211 | 212 | 213 | YES 214 | 215 | viewController 216 | KeyboardNumberPadViewController 217 | 218 | 219 | window 220 | UIWindow 221 | 222 | 223 | 224 | 225 | IBProjectSource 226 | Classes/KeyboardNumberPadAppDelegate.h 227 | 228 | 229 | 230 | KeyboardNumberPadAppDelegate 231 | NSObject 232 | 233 | IBUserSource 234 | 235 | 236 | 237 | 238 | KeyboardNumberPadViewController 239 | UIViewController 240 | 241 | IBProjectSource 242 | Classes/KeyboardNumberPadViewController.h 243 | 244 | 245 | 246 | 247 | YES 248 | 249 | NSObject 250 | 251 | IBFrameworkSource 252 | Foundation.framework/Headers/NSError.h 253 | 254 | 255 | 256 | NSObject 257 | 258 | IBFrameworkSource 259 | Foundation.framework/Headers/NSFileManager.h 260 | 261 | 262 | 263 | NSObject 264 | 265 | IBFrameworkSource 266 | Foundation.framework/Headers/NSKeyValueCoding.h 267 | 268 | 269 | 270 | NSObject 271 | 272 | IBFrameworkSource 273 | Foundation.framework/Headers/NSKeyValueObserving.h 274 | 275 | 276 | 277 | NSObject 278 | 279 | IBFrameworkSource 280 | Foundation.framework/Headers/NSKeyedArchiver.h 281 | 282 | 283 | 284 | NSObject 285 | 286 | IBFrameworkSource 287 | Foundation.framework/Headers/NSObject.h 288 | 289 | 290 | 291 | NSObject 292 | 293 | IBFrameworkSource 294 | Foundation.framework/Headers/NSRunLoop.h 295 | 296 | 297 | 298 | NSObject 299 | 300 | IBFrameworkSource 301 | Foundation.framework/Headers/NSThread.h 302 | 303 | 304 | 305 | NSObject 306 | 307 | IBFrameworkSource 308 | Foundation.framework/Headers/NSURL.h 309 | 310 | 311 | 312 | NSObject 313 | 314 | IBFrameworkSource 315 | Foundation.framework/Headers/NSURLConnection.h 316 | 317 | 318 | 319 | NSObject 320 | 321 | IBFrameworkSource 322 | UIKit.framework/Headers/UIAccessibility.h 323 | 324 | 325 | 326 | NSObject 327 | 328 | IBFrameworkSource 329 | UIKit.framework/Headers/UINibLoading.h 330 | 331 | 332 | 333 | NSObject 334 | 335 | IBFrameworkSource 336 | UIKit.framework/Headers/UIResponder.h 337 | 338 | 339 | 340 | UIApplication 341 | UIResponder 342 | 343 | IBFrameworkSource 344 | UIKit.framework/Headers/UIApplication.h 345 | 346 | 347 | 348 | UIResponder 349 | NSObject 350 | 351 | 352 | 353 | UISearchBar 354 | UIView 355 | 356 | IBFrameworkSource 357 | UIKit.framework/Headers/UISearchBar.h 358 | 359 | 360 | 361 | UISearchDisplayController 362 | NSObject 363 | 364 | IBFrameworkSource 365 | UIKit.framework/Headers/UISearchDisplayController.h 366 | 367 | 368 | 369 | UIView 370 | 371 | IBFrameworkSource 372 | UIKit.framework/Headers/UITextField.h 373 | 374 | 375 | 376 | UIView 377 | UIResponder 378 | 379 | IBFrameworkSource 380 | UIKit.framework/Headers/UIView.h 381 | 382 | 383 | 384 | UIViewController 385 | 386 | IBFrameworkSource 387 | UIKit.framework/Headers/UINavigationController.h 388 | 389 | 390 | 391 | UIViewController 392 | 393 | IBFrameworkSource 394 | UIKit.framework/Headers/UIPopoverController.h 395 | 396 | 397 | 398 | UIViewController 399 | 400 | IBFrameworkSource 401 | UIKit.framework/Headers/UISplitViewController.h 402 | 403 | 404 | 405 | UIViewController 406 | 407 | IBFrameworkSource 408 | UIKit.framework/Headers/UITabBarController.h 409 | 410 | 411 | 412 | UIViewController 413 | UIResponder 414 | 415 | IBFrameworkSource 416 | UIKit.framework/Headers/UIViewController.h 417 | 418 | 419 | 420 | UIWindow 421 | UIView 422 | 423 | IBFrameworkSource 424 | UIKit.framework/Headers/UIWindow.h 425 | 426 | 427 | 428 | 429 | 0 430 | IBCocoaTouchFramework 431 | 432 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 433 | 434 | 435 | 436 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 437 | 438 | 439 | YES 440 | KeyboardNumberPad.xcodeproj 441 | 3 442 | 112 443 | 444 | 445 | -------------------------------------------------------------------------------- /Demo/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/Demo/README -------------------------------------------------------------------------------- /Demo/heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/Demo/heart.png -------------------------------------------------------------------------------- /Demo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // KeyboardNumberPad 4 | // 5 | // Created by Vinogradov Sergey on 11.06.11. 6 | // Copyright 2011 AppMake.Ru. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) { 12 | 13 | NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 14 | int retVal = UIApplicationMain(argc, argv, nil, nil); 15 | [pool release]; 16 | return retVal; 17 | } 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 AppMake.Ru 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appmake/AMKeyboardNumberPad/c038546865ec79fa803fba17d9e29ad6fcf1af31/README --------------------------------------------------------------------------------