0

I imported IQKeyboardManger successfully in my login view controller. After that I added this code

//In viewDidLoad

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    //IQKeyboardManager
    [[IQKeyboardManager sharedManager] setEnable:YES];

    [[IQKeyboardManager sharedManager] setKeyboardDistanceFromTextField:100];

    [[IQKeyboardManager sharedManager] setEnableAutoToolbar:YES];

    [[IQKeyboardManager sharedManager] setShouldShowTextFieldPlaceholder:YES];

    [self.ad.window makeKeyAndVisible];

}

But it's not working in iOS 11.0

Screen 1

enter image description here

Screen 2

enter image description here

I added code in app delegate

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];

//Identify launching status(Is first time or not)
//If it is first time go to login page
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) {
    self.lpvc = [self.mainStoryboard instantiateViewControllerWithIdentifier:@"LPVC"];
    self.window.rootViewController = self.lpvc;
    NSLog(@"Launched first time");
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    //IQKeyboarbManager
    [[IQKeyboardManager sharedManager] setEnable:YES];
//        [[IQKeyboardManager sharedManager] setKeyboardDistanceFromTextField:100];
    [[IQKeyboardManager sharedManager] setEnableAutoToolbar:YES];
    [[IQKeyboardManager sharedManager] setShouldShowTextFieldPlaceholder:YES];
} else {
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"loggedin"]) {
    self.rvc = [self.mainStoryboard instantiateViewControllerWithIdentifier:@"RVC"];
    self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:self.rvc];
        NSLog(@"Already launched");
        [self getDataFromServer];
 //            [self.rvc checkAppVersion];
    }
}

[self.window makeKeyAndVisible];

return yes;
Naresh
  • 16,698
  • 6
  • 112
  • 113

1 Answers1

0

Copy that code to AppDelegate

AppDelegate.m

#import "AppDelegate.h"
#import "IQKeyboardManager.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//ONE LINE OF CODE.
//Enabling keyboard manager(Use this line to enable managing distance between keyboard & textField/textView).
[[IQKeyboardManager sharedManager] setEnable:YES];

//(Optional)Set Distance between keyboard & textField, Default is 10.
//[[IQKeyboardManager sharedManager] setKeyboardDistanceFromTextField:15];

//(Optional)Enable autoToolbar behaviour. If It is set to NO. You have to manually create UIToolbar for keyboard. Default is NO.
[[IQKeyboardManager sharedManager] setEnableAutoToolbar:YES];

//(Optional)Setting toolbar behaviour to IQAutoToolbarBySubviews to manage previous/next according to UITextField's hierarchy in it's SuperView. Set it to IQAutoToolbarByTag to manage previous/next according to UITextField's tag property in increasing order. Default is `IQAutoToolbarBySubviews`.
//[[IQKeyboardManager sharedManager] setToolbarManageBehaviour:IQAutoToolbarBySubviews];

//(Optional)Resign textField if touched outside of UITextField/UITextView. Default is NO.
//[[IQKeyboardManager sharedManager] setShouldResignOnTouchOutside:YES];

//(Optional)Giving permission to modify TextView's frame. Default is NO.
//[[IQKeyboardManager sharedManager] setCanAdjustTextView:YES];

//(Optional)Show TextField placeholder texts on autoToolbar. Default is NO.
[[IQKeyboardManager sharedManager] setShouldShowTextFieldPlaceholder:YES];

[self.window makeKeyAndVisible];
return YES;
 }

and it will work fine.

Note : Make sure you have update to latest version (5.0.3)

Himanth
  • 2,381
  • 3
  • 28
  • 41
  • Yes I added yesterday through pods, – Naresh Oct 11 '17 at 08:13
  • My code in AppDelegate is self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil]; //Identify launching status(Is first time or not)//If it is first time go to login page – Naresh Oct 11 '17 at 08:15
  • Can you change the value 10 or remove setKeyboardDistanceFromTextField line and check again? – Himanth Oct 11 '17 at 08:15
  • if (![[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) { self.lpvc = [self.mainStoryboard instantiateViewControllerWithIdentifier:@"LPVC"]; self.window.rootViewController = self.lpvc; NSLog(@"Launched first time"); [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"]; [[NSUserDefaults standardUserDefaults] synchronize]; – Naresh Oct 11 '17 at 08:15
  • //IQKeyboarbManager [[IQKeyboardManager sharedManager] setEnable:YES]; [[IQKeyboardManager sharedManager] setKeyboardDistanceFromTextField:100]; [[IQKeyboardManager sharedManager] setEnableAutoToolbar:YES]; [[IQKeyboardManager sharedManager] setShouldShowTextFieldPlaceholder:YES]; } – Naresh Oct 11 '17 at 08:15
  • else { if ([[NSUserDefaults standardUserDefaults] boolForKey:@"loggedin"]) { self.rvc = [self.mainStoryboard instantiateViewControllerWithIdentifier:@"RVC"]; self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:self.rvc]; NSLog(@"Already launched"); } } [self.window makeKeyAndVisible]; return YES; – Naresh Oct 11 '17 at 08:15
  • I removed setKeyboardDistanceFromTextField , but it's not working – Naresh Oct 11 '17 at 08:17