У меня есть UIViewController с UITextField в нем и соответствует протоколу UITextFieldDelegate. Когда я впервые построил приложение, iOS 7 была последней iOS, и когда я выбрал текстовое поле, клавиатура появлялась, как и ожидалось.UITextFieldDelegate работает на iOS 8, но не iOS 7
Наряду с iOS 8 и Xcode 6. Ничего не изменилось в коде, так как я впервые написал его, но теперь, что любопытно, когда я выбираю текстовое поле на устройстве iOS 8, появляется клавиатура, но на устройстве iOS 7 это не.
Зачем это было? Есть идеи?
Вот мой код:
#import "BBFeatVC.h"
@interface BBFeatVC()
@end
@implementation BBFeatVC
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.featTextField.delegate = self;
// Set label
self.featLabel.numberOfLines = 0;
// enhance keypad
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],
nil];
[numberToolbar sizeToFit];
self.featTextField.inputAccessoryView = numberToolbar;
}
-(void)cancelNumberPad{
[self.featTextField resignFirstResponder];
}
-(void)doneWithNumberPad{
NSString *numberFromTheKeyboard = self.featTextField.text;
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *num = [f numberFromString:numberFromTheKeyboard];
NSInteger newStat = [num integerValue];
[[NSUserDefaults standardUserDefaults] setInteger:newStat forKey:self.featStat];
[self.featTextField resignFirstResponder];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end