1

我有一个带有 UITextField 的 UIViewController,当键盘类型设置为 NumberPad 时,它使用自定义的“完成”按钮。我使用了类似的代码 -

http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key

但是,我的问题是自定义键盘在应用程序的其他 UIviews 中无处不在。如果我从另一个视图控制器调用键盘,我仍然会在键盘上看到“完成”按钮。我有其他需要未自定义版本的 UIKeyboard 的视图。

谢谢

4

1 回答 1

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];
}

添加按钮的逻辑与博客描述的逻辑没有什么不同,因此只要您按照该方向进行操作,您应该会在数字键盘上看到该按钮,然后在单击“完成”按钮时看到它被删除。

于 2011-08-28T20:39:19.820 回答