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