单击UITextField时显示自定义控件

时间:2014-02-26 06:58:15

标签: ios iphone uitextfield

iOS中,当点击UITextField时,系统默认数字键盘会弹出。我已经掌握了自己的控制权。我想在点击UITextField时调出自己的控件,就像系统默认数字键盘一样。我可以在编程中这样做吗?如果是这样,怎么样?

4 个答案:

答案 0 :(得分:2)

您可以按[self.view endEditing:YES];隐藏键盘并显示您自己的控件。

UITextField委托方法下面尝试以上代码行:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.
- (void)textFieldDidBeginEditing:(UITextField *)textField;           // became first responder

答案 1 :(得分:2)

为此目的有一处房产。只需使用您的自定义控件视图分配它:

[yourTextField setInputView:yourCustomControlsView];

答案 2 :(得分:0)

使用自定义视图和自定义按钮。键盘本身很容易做,你只需要在视图上放置一些按钮然后显示该视图。您真正的问题是将按钮操作连接到文本字段。

您必须检查第一个响应者,然后将与自定义键盘对应的值添加到其文本中。在文本字段中从键盘实际“键入”那些奇怪的字符将是一个更加困难的问题。我不熟悉它们,是那些真正的ASCII字符吗?

无论如何,你在做一些工作。编码并不是很困难,需要一些复杂的算法,但实现起来会很复杂,所以要小心

答案 3 :(得分:0)

尝试以下代码。确保将代理人分配到UITextField

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [textField resignFirstResponder];
    CustomNumberPadViewController *customNumberPadViewController = [[CustomNumberPadViewController alloc] initWithNibName:@"CustomNumberPadView" bundle:nil];
    [self presentViewController:CustomNumberPadViewController animated:YES completion:nil];
}