键盘设置InputAccessoryView按钮未触发

时间:2011-05-28 09:52:17

标签: iphone events button keyboard

我想在键盘上方显示下一个上一个按钮。我从viewDidLoad调用函数“makeToolBars”来创建它。应用程序确实正确显示按钮,但是当我点击它们时,我得到错误,它不会转到“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 个答案:

答案 0 :(得分:3)

以下陈述是错误的。

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中添加冒号(正确goToNextField:)。

goToNextField的函数实现中,您正在考虑使用冒号并将:(id) sender放在函数中。

答案 1 :(得分:1)

你写过action:@selector(goToNextField)];。它应该是action:@selector(goToNextField:)];