您的位置:首页 > 产品设计 > UI/UE

ios开发之uitextview及uitextfield获得焦点时弹出的键盘及键盘上面的附加view设置

2015-07-17 14:32 716 查看
在ios开发中有时候想让文本框获得焦点的时候弹出的不是键盘而是自定义的东西,这个可以通过改变textfield或者textview的inputView来设置;但是要是想在普通键盘上面加一个自定义的view可以通过改变textfield或者textview的inputAccessoryView属性来设置。例如:

oc代码

01
-
(
void
)viewDidLoad
02
{
03
    
[super
viewDidLoad];
04
    
//
Do any additional setup after loading the view, typically from a nib.
05
    
[self
keyboardview];
06
}
07
 
08
#pragma
mark - 键盘上的view
09
-(
void
)keyboardview
10
{
11
    
UIView
*inputview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 20)];
12
    
inputview.backgroundColor
= [UIColor blueColor];
13
    
 
14
    
UITextField
*text = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 200, 20)];
1
//text.inputView
= inputview;//inputView是自定义点击text的时候弹出的view
2
text.inputAccessoryView
= inputview;
//inputAccessoryView是键盘上面附加的view
1
    
text.backgroundColor
= [UIColor redColor];
2
    
[self.view
addSubview:text];
3
}
这种情况下(设置inputAccessoryView)的效果如下图:
而如果这样

1
text.inputView
= inputview;
//inputView是自定义点击text的时候弹出的view
2
//text.inputAccessoryView
= inputview;//inputAccessoryView是键盘上面附加的view
的结果是这样的:



但是如果这样

text.inputView = inputview;//inputView是自定义点击text的时候弹出的view
text.inputAccessoryView = inputview;//inputAccessoryView是键盘上面附加的view
两句都执行的话,也不会出现自定义键盘view上还附加view的效果。
并且如果这样

text.inputView = nil;//inputView是自定义点击text的时候弹出的view
text.inputAccessoryView = inputview;//inputAccessoryView是键盘上面附加的view
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息