Клавиатура UITextField отключается при нажатии кнопки на метод UIApplication

Я перехожу от раскадровки к UISplitViewController в xib. Я хочу выйти из своего представления раскадровки, что приведет меня к UISplitViewController. В контроллере раскадровки у меня есть UITextField. Я установил его так, чтобы он не закрывался после того, как я нажму Enter. Однако теперь он остается открытым, даже когда я переключаюсь на splitviewcontroller, что мне явно не нужно, потому что я хочу выйти из системы.

Кнопка выхода

  UIBarButtonItem *logoutButton = [[UIBarButtonItem alloc] initWithTitle:@"Log Out" style:UIBarButtonItemStylePlain target:self action:@selector(confirmLogout)];

Способ вызвать UISplitViewCOntroller

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
{

    if (alertView.tag==TAG_DEV){


        if (buttonIndex) {


            [[[UIApplication sharedApplication] delegate] performSelector:@selector(gotoSplitViewController)];


        } else {



            [self.navigationController popViewControllerAnimated:YES];

        }}

  }

метод gotoSplitViewController в делегате:

-(void)gotoSplitViewController{




    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    ListViewController *listVC = [[ListViewController alloc] initWithStyle:UITableViewStylePlain];
    UINavigationController *listNC = [[UINavigationController alloc] initWithRootViewController:listVC];

    AssignedViewController *assignedVC = [[AssignedViewController alloc] initWithNibName:@"AssignedViewController" bundle:nil];
    UINavigationController *assignedNC = [[UINavigationController alloc] initWithRootViewController:assignedVC];

    //assign the views to the new nav view controllers
    splitViewController = [[UISplitViewController alloc] init];
    splitViewController.delegate = assignedVC;
    splitViewController.viewControllers = @[listNC, assignedNC];

    listVC.detailViewController = assignedVC;


    [[self window] setRootViewController:splitViewController];

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];



}

мой UITextField

self.textBox = [[UITextField alloc] initWithFrame: CGRectMake(10, 660, 750, 90)];
    self.textBox.backgroundColor = [UIColor colorWithRed:(209/255.0) green:(236/255.0) blue:(232/255.0) alpha:1];
    self.textBox.returnKeyType = UIReturnKeySend;
    self.textBox.delegate = self;
    [self.view addSubview:self.textBox];

Я пробовал resignFirstResponder в разных местах, включая добавление

- (void)viewWillDisappear:(BOOL)animated
{
    [self.textBox resignFirstResponder];

}

Однако ни один из них не работает. Как сделать так, чтобы клавиатура исчезала после смены вида?


comment
Одна вещь, которую вы можете попробовать, если вы еще этого не сделали, — вы можете resignFirstResponder в confirmLogout. Еще одна вещь, о которой я могу думать, это то, что, возможно, ваш textBox больше не является первым ответчиком, когда вы вызываете его в viewWillDisappear. Таким образом, вы можете заставить его статьFirstResponder, поскольку клавиатура уже видна, а в следующей строке просто resignFirstResponder.   -  person nstein    schedule 24.03.2014
comment
Привет @nstein! Спасибо за помощь. Я попробовал это в подтверждении выхода из системы, но все равно не сработало :( Но я не рассматривал другое решение, что это не первый ответчик. Я попробую это и дам вам знать, как это происходит.   -  person user3325170    schedule 25.03.2014
comment
хм, я все еще не могу заставить его работать. Как вы думаете, это как-то связано с self.chatBox.delegate = self; линия?   -  person user3325170    schedule 25.03.2014
comment
Хорошо, я обнаружил поведение в отношении self.chatbox.delegate.self. Когда я удалил эту строку, она исчезла, когда я изменил вид, так что это здорово. Однако теперь uitextview, связанный с текстовым полем, не будет получать сообщения, поэтому это не сработает. Но я предполагаю, что мне нужно отменить делегирование... у вас есть какие-нибудь идеи относительно того, как это будет работать?   -  person user3325170    schedule 25.03.2014
comment
Только что ответил на свой вопрос, который я задал, я установил его на self.chatbox.delegate=nil;   -  person user3325170    schedule 25.03.2014


Ответы (1)


я установил

self.chatBox.delegate=nil;

в моих методах переключения взглядов

person user3325170    schedule 25.03.2014