我有一个带有UITextField的UIViewController,当keyboardType设置为NumberPad时,它使用自定义'DONE'按钮。我使用过类似的代码 -
http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key
但是,我的问题是自定义键盘在应用程序的其他UI视图中仍然无处不在。如果我从另一个视图控制器调用键盘,我仍然会覆盖键盘上的“完成”按钮。我还有其他需要Unikustomized版本的UIKeyboard的视图。
由于
答案 0 :(得分:1)
我从上面提到的完全相同的博客开始。我遇到了同样的问题,因为我的应用程序中有多种键盘类型。
我的解决方案包括以下更改:
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];
}
添加按钮的逻辑与博客描述的逻辑没有什么不同,只要您按照该方向操作,就应该看到数字键盘上的按钮,然后在单击“完成”按钮时将其删除。