UITextView - 6
来源:互联网 发布:冒泡排序法c语言 编辑:程序博客网 时间:2024/06/11 08:18
上一篇章我们了解了inputAccessView的具体意义,那我们这里来了解一下inputView的作用。
默认的UITextView的inputView是系统键盘,如下:
当UITextView被触发成第一响应者的时候,就会弹出这个键盘。
当我们想着如果第一响应者触发出的并不是键盘的时候,我们会继承一个UITextView的子类并且重写这个属性,如下:
#import <UIKit/UIKit.h>#pragma mark - Review the UITextView's property : inputView.@interface LBIViewTextView : UITextView <UIPickerViewDataSource, UIPickerViewDelegate>{ UIPickerView* _inputView;}@property (nonatomic, strong, readwrite) UIPickerView* inputView;@end@interface LBInputViewController : UIViewController@property (nonatomic, strong) LBIViewTextView* myTextView;@end
#import "LBInputViewController.h"@implementation LBIViewTextView@synthesize inputView;//rewrite inputView property .- (UIPickerView* )inputView{ if (!_inputView) { UIPickerView* pickView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 200, 300, 200)]; pickView.delegate = self; pickView.dataSource = self; pickView.showsSelectionIndicator = YES; return pickView; } return _inputView;}- (BOOL)canBecomeFirstResponder{ return YES;}- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return 1;}- (NSString* )pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ return [NSString stringWithFormat:@"%ld", (long)row];}- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ return 5;}- (void)dealloc{ _inputView = nil;}@end#pragma mark - LBInputViewController - - - - - - - - - -@interface LBInputViewController ()@end@implementation LBInputViewController- (void)viewDidLoad{ [super viewDidLoad]; self.myTextView = [[LBIViewTextView alloc] init]; [self.myTextView setFrame:CGRectMake(0, 0, 300, 35)]; [self.myTextView setCenter:CGPointMake(self.view.center.x, self.view.center.y - 50)]; [self.myTextView setReturnKeyType:UIReturnKeyNext]; [self.myTextView setScrollEnabled:YES]; [self.myTextView setFont:[UIFont systemFontOfSize:18.0]]; [self.myTextView setAutoresizingMask:UIViewAutoresizingFlexibleHeight]; [self.myTextView.layer setBackgroundColor:[UIColor clearColor].CGColor]; [self.myTextView.layer setBorderColor:[UIColor lightGrayColor].CGColor]; [self.myTextView.layer setBorderWidth:1.0]; [self.myTextView.layer setCornerRadius:8.0f]; [self.myTextView.layer setMasksToBounds:YES]; [self.view addSubview:self.myTextView];}@end
结果:
这时候触发第一响应者就可以弹出我们自定义的UIPickerView啦。是不是很神奇咧。
上一篇章讲到,其实 inputView 和 inputAccessoryView 都是来自最底层的UIResponder类的,所以你还可以在UIView,UITableViewCell等等具备成为第一响应者触发能力的类去实现。当然有一些要做特别处理,例如单纯的UITableViewCell的 点击方法didSelect 方法并不完全等价于成为第一响应者,所以要重写 canBecomeFirstResponder 方法和手动去让它成为第一响应者 :[cell becomeFirstResponder] 等,具体问题具体分析啦!
参考:
http://www.360doc.com/content/14/0509/18/11029609_376170517.shtml
http://www.cnblogs.com/worldtraveler/archive/2012/09/18/2691406.html
0 0
- UITextView - 6
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- UITextView
- dfs
- php bootstrap 实现简单登录
- 纯代码创建按钮
- 【转】java.lang.Exception: Socket bind failed: [730048]问题解决办法
- svn在linux下的使用(svn命令)
- UITextView - 6
- SQL 分类条件统计
- Compiler Options Listed by Category
- android手机分辨率和设计图尺寸之间的关系
- C-034.指针与一维数组
- IP组播技术介绍及实现例子
- scrollto scrollby scrollX scrollY的个人理解
- 第7章 应用层
- SQL 语句中按照in语句原有的顺序进行排序