iOS InputView 和 InutAccessoryView
来源:互联网 发布:early stopping算法 编辑:程序博客网 时间:2024/06/05 00:39
一、InputAccessoryView
1、UITextField和UITextView有一个InutAccessoryView的属性,当你想在键盘上展示一个自定义的view时,你就可以设置该属性。你设置的view就会自动和键盘keyboard一起显示了,需要注意的是,你所自定义的view既不应该处在其他视图层,也不应该成为其他视图的子视图。其实也就是说,你所自定义的view只要赋给InutAccessoryView就可以了,不要再做其他多余的操作。
2、我们在使用UITextField和UITextView的时候,可以通过它们的InutAccessoryView属性给输入时呼出的键盘加一个附属视图,通常是UIToolBar,用于回收键盘。
3、但是当我们要操作的视图不是UITextField或UITextView的时候,InutAccessoryView就变成了readonly的。这时我们如果还想再加InutAccessoryView,按API中的说法,就需要新建一个该视图的子类,并重新声明InutAccessoryView属性为readwrite的。比如我们要实现点击一个tableView的一行时,呼出一个UIPickerView,并且附加一个用于回收PickerView的toolbar。因此我们自一个UITableViewCell类,并声明InutAccessoryView和inputView为readwrite的,并且重写它们的get方法,这样在某个tableviewcell变成第一响应者时,它就会自动呼出inputView和InutAccessoryView;
二、InputView
1、inputView就是显示键盘的view,如果重写这个view则不再弹出键盘,而是弹出自己的view.如果想实现当某一控件变为第一响应者时不弹出键盘而是弹出我们自定义的界面,那么我们就可以通过修改这个inputView来实现,比如弹出一个日期拾取器。
2、inputView不会随着键盘出现而出现,设置了inputView只会当UITextField或者UITextView变为第一相应者时显示出来,不会显示键盘了。设置了InutAccessoryView,它会随着键盘一起出现并且会显示在键盘的顶端。InutAccessoryView默认为nil.
三、示例代码
#import "ViewController.h"#define screenW [UIScreen mainScreen].bounds.size.width //屏幕宽度#define screenH [UIScreen mainScreen].bounds.size.height //屏幕高度@interface ViewController ()<UITextFieldDelegate>@property (nonatomic, retain) UITextField * textField;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor grayColor]; [self createToolBar];}- (void)createToolBar { // 定义一个toolBar UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, screenW, 40)]; // 设置style [topView setBarStyle:UIBarStyleBlack]; // 定义完成按钮 UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(resignKeyboard)]; // 在toolBar上加上这些按钮 NSArray * buttonsArray = @[doneButton]; [topView setItems:buttonsArray]; UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, screenW, 250)]; label.text = @"InputView"; label.textAlignment = NSTextAlignmentCenter; self.textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 100, screenW - 100, 40)]; self.textField.delegate = self; self.textField.placeholder = @"我是UITextField"; self.textField.borderStyle = UITextBorderStyleRoundedRect; self.textField.inputView = label; self.textField.inputAccessoryView = topView; [self.view addSubview:self.textField]; }// 隐藏键盘-(void)resignKeyboard { [self.textField resignFirstResponder];}@end
结果:
- iOS InputView 和 InutAccessoryView
- iOS inputView 和 inputAccessoryView
- ios开发-inputView和inputAccessoryView
- iOS开发inputView和inputAccessoryView
- inputAccessoryView和inputView的区别
- IOS学习笔记(六)inputAccessoryView,inputView
- IOS学习笔记(六)inputAccessoryView,inputView
- iOS UITextField InputAccessoryView & InputView的使用方法
- IOS学习笔记(六)inputAccessoryView,inputView
- iOS UI: UIMenuController | InputView 折腾记
- 【iOS开发-70】点菜系统案例:利用文本框的inputView和inputAccessoryView串联UIPickerView、UIDatePicker和UIToolBar
- 谈UITextView、UITextField的InPutView和AccessoryInputView的便利
- inputAccessoryView,inputView
- inputAccessoryView,inputView
- 关于UITextField切换系统键盘和InputView的卡顿的问题
- UIResponder inputView与inputAccessoryView
- UIButton中的inputAccessoryView,inputView
- InputAccessoryView 与 inputView理解
- Python教程学习简记1--Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set
- [Codecademy] HTML&CSS 第一课:HTML Basic
- java文件编程可执行文件原理
- MySQL error: The partition with /var/lib/mysql is too full!
- putty远程登录修改字体大小和颜色
- iOS InputView 和 InutAccessoryView
- caffe中计算图像的均值
- 排序5
- failed to push some refs to git
- Wunder Fund Round 2016 (Div. 1 + Div. 2 combined)--C. Constellation
- Android消息推送(一)--AndroidPn(XMPP协议)Demo版
- Android 自定义Fragment切换管理类,自动管理Fragment的生命周期,支持FragmentActivity和Fragment里面嵌套fragment
- cocos2dx中使用tiled地图实现sprite动态遮挡
- ②C语言,求数组里相同的位置并输出