我从与您上面提到的完全相同的博客开始。我遇到了同样的问题,因为我的应用程序中有多种键盘类型。
我的解决方案包括以下更改:
1 - 使 UIButton *doneButton 成为 Controller 类的成员变量
2 - 在“viewDidLoad”方法中,我有以下片段
self.doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(0, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
3 - 在“doneButton”IBAction 中,我有以下代码片段来确保按钮已从键盘视图中移除。
- (IBAction) doneButton:(id)sender {
[self.view endEditing:YES];
[doneButton removeFromSuperview];
}
添加按钮的逻辑与博客描述的逻辑没有什么不同,因此只要您按照该方向进行操作,您应该会在数字键盘上看到该按钮,然后在单击“完成”按钮时看到它被删除。