iOS开发键盘右上角添加完成按钮

释放双眼,带上耳机,听听看~!

在调出键盘后,我们通常希望在键盘的右上角添加一个完成的按钮,也就是给键盘添加一个附属的视图。

我们知道,在uitextField或uitextView获得焦点的时候,键盘弹出。要在键盘的右上角添加完成按钮,其实就是通过设置它们的inputAccessoryView属性实现的:

先看看现实方法:

 

 

UIToolbar *bar = [[UIToolbaralloc]
initWithFrame:CGRectMake(0,0,
SCREEN_WIDTH,44)];

    UIButton *button = [[UIButtonalloc]
initWithFrame:CGRectMake(SCREEN_WIDTH -
60, 7,50,
30)];

    [button setTitle:@"完成"forState:UIControlStateNormal];

    [button setTitleColor:COLOR_ORANGE_LIGHTforState:UIControlStateNormal];

    [bar addSubview:button];

    _textField.inputAccessoryView = bar;

 

效果差不多这样子:

 

当然如果你觉得每次时候textField都需要添加这段代码太麻烦,有没有一劳永逸的办法:

答案是有,就是继承uitextField,重写它的drawRect:

 

- (void)drawRect:(CGRect)rect {

    [superdrawRect:rect];

    UIToolbar *bar = [[UIToolbaralloc]
initWithFrame:CGRectMake(0,0,
SCREEN_WIDTH,44)];

    UIButton *button = [[UIButtonalloc]
initWithFrame:CGRectMake(SCREEN_WIDTH
- 60, 7,50,
30)];

    [button setTitle:@"完成"forState:UIControlStateNormal];

    [button setTitleColor:[UIColorredColor]
forState:UIControlStateNormal];

    button.layer.borderColor = [UIColorredColor].CGColor;

    button.layer.borderWidth =1;

    button.layer.cornerRadius =3;

    [bar addSubview:button];

    self.inputAccessoryView = bar;

    

    [button addTarget:selfaction:@selector(print)forControlEvents:UIControlEventTouchUpInside];

}




- (void) print {

    NSLog(@"button click");

 

}

 

人已赞赏
iOS文章

iOS开发isKindOfClass和isMemberOfClass区别

2020-1-28 17:13:23

iOS文章

ios开发tableView sectionHeader 吸顶效果

2020-1-28 18:34:26

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索