Клавиатура setInputAccessoryПросмотр кнопок не срабатывает - PullRequest
0 голосов
/ 28 мая 2011

Я хочу показать следующие предыдущие кнопки над клавиатурой. Я вызываю функцию "makeToolBars" из viewDidLoad, чтобы создать ее. Приложение отображает кнопки правильно, но когда я нажимаю на них, я получаю сообщение об ошибке, оно не переходит к функции "goToNextField".

Может кто-нибудь указать, как это исправить?

-(void)goToNextField:(id)sender
{
    [txtPassword resignFirstResponder];
    [txtUserName becomeFirstResponder];
}

-(void) makeToolBars
{
    UIToolbar *toolbar1 = [[[UIToolbar alloc] init] autorelease];
    [toolbar1 setBarStyle:UIBarStyleBlackTranslucent];
    [toolbar1 sizeToFit];

    UIBarButtonItem *nextButton = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Next"
                                   style:UIBarButtonItemStyleBordered
                                   target:self
                                   action:@selector(goToNextField)];

    UIBarButtonItem *flexButton1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

    NSArray *itemsArray1 = [NSArray arrayWithObjects: nextButton,flexButton1, nil];

    [flexButton1 release];
    [nextButton release];
    [toolbar1 setItems:itemsArray1];

    [txtUserName setInputAccessoryView:toolbar1];


}

Ответы [ 2 ]

3 голосов
/ 28 мая 2011

Указанное ниже неверно.

UIBarButtonItem *nextButton = [[UIBarButtonItem alloc]
                               initWithTitle:@"Next"
                               style:UIBarButtonItemStyleBordered
                               target:self
                               action:@selector(goToNextField)];

используйте приведенный ниже измененный правильный код.

UIBarButtonItem *nextButton = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Next"
                                   style:UIBarButtonItemStyleBordered
                                   target:self
                                   action:@selector(goToNextField:)];

Поскольку вы можете забыть добавить двоеточие в goToNextField (Correct goToNextField:).

И в своей реализации функции для goToNextField вы рассматривали двоеточие и поместили :(id) sender в свою функцию.

1 голос
/ 28 мая 2011

Вы написали action:@selector(goToNextField)];. Это должно быть action:@selector(goToNextField:)];

...