在UINavigationbar中添加完成按钮

jar*_*ryd 4 iphone uikeyboard

当用户触摸特定的文本字段或文本视图时,如何将完成按钮添加到UINavigationbar?

或者更好的方法是检测键盘何时显示,然后显示按钮.

我希望完成按钮可以像标准Notes应用程序一样关闭键盘.

Pen*_*One 6

你可以尝试类似的东西:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{       
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                                target:self
                                                                                action:@selector(doneEditing)];
    [[self navigationItem] setRightBarButtonItem:doneButton];
    [doneButton release];
}
Run Code Online (Sandbox Code Playgroud)

并且

- (void)textViewDidBeginEditing:(UITextView *)textView 
{       
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                                target:self
                                                                                action:@selector(doneEditing)];
    [[self navigationItem] setRightBarButtonItem:doneButton];
    [doneButton release];
}
Run Code Online (Sandbox Code Playgroud)

根据您的喜好定制以下内容

- (void)doneEditing {
    [[self view] endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)

然后删除按钮- (void)textFieldDidEndEditing:(UITextField *)textField,也在- (void)textViewDidEndEditing:(UITextView *)textView

只记得设置代表!