将自定义行添加到键盘

时间:2014-01-16 11:26:01

标签: ios objective-c uikeyboard

我见过一些应用程序在键盘上添加了自定义行。该行可能包括例如箭头,修饰符,复制和粘贴等。我想在我自己的应用程序中添加其中一个,但它们真的是什么?它们只是隐藏键盘时隐藏按钮的工具栏,还是有专门为键盘添加行的框架/功能?

4 个答案:

答案 0 :(得分:3)

一切都很简单。您只需将自定义行视图分配给UITextField' s inputAccessoryView。 最方便的方法是将UIToolBar用作inputAccessoryView

阅读Custom Views for Data Input了解详情。

答案 1 :(得分:0)

为什么需要一个库?

您可以创建自定义视图并将其移动固定到键盘显示/隐藏通知,使其成为键盘的一部分。

答案 2 :(得分:0)

我的代码:

UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:
                        [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],
                        [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                        [[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],
                       nil];
[numberToolbar sizeToFit];
self.textField.inputAccessoryView = numberToolbar;

答案 3 :(得分:-2)

在textfield开始编辑时添加:

UIButton *doneBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[doneBtn setBackgroundImage:[UIImage imageNamed:@"TextViewDone.png"] forState:UIControlStateNormal];

[doneBtn addTarget:self action:@selector(closeKeyboard) forControlEvents:UIControlEventTouchUpInside];
doneBtn.frame = CGRectMake(self.view.frame.size.width-70,6,64,30);


headerBarView = [[UIView alloc]initWithFrame:CGRectMake(0,headerY,self.view.frame.size.width,40)];
headerBarView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TextViewBar.png"]];
[headerBarView addSubview:doneBtn];
[self.view addSubview:headerBarView];

当文本字段结束编辑时:

// Action for close keyboard of header bar for UITextView *****
- (void) closeKeyboard
{
    [headerBarView removeFromSuperview];
}