inputAccessoryView的使用

本文介绍如何使用iOS中的inputAccessoryView属性为UITextField或UITextView添加自定义视图,实现键盘上的额外功能,例如添加‘完成’按钮以方便用户关闭键盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

inputAccessoryView属性存在于UITextView和UITextField两个控件类中,它接收一个自定义view,通过它我们可以很方便的在键盘上扩展我们想要的功能。

先上代码:新建一个project然后运行下面这段代码

UITextField *tf = [[UITextField alloc]initWithFrame:CGRectMake(20.0, 20.0, self.view.bounds.size.width - 40.0, 30.0)];

_tf = tf;

tf.borderStyle = UITextBorderStyleRoundedRect;

[self.view addSubview:tf];

结果:


嗯,这是iOS系统自带键盘,现在我们使用UITextView的inputAccessoryView这个属性来对键盘做一下拓展,以满足我们的需求:

在先前的代码上添加下面的代码:

tf.inputAccessoryView = [self keyboardToolView];

- (UIView *)keyboardToolView {
    UIView *kbTView = [[UIView alloc]initWithFrame:CGRectMake(0.0, 0.0, CGRectGetWidth([UIScreen mainScreen].bounds), 40.0)];
    kbTView.backgroundColor = [UIColor blackColor];
    UIButton *finishBut = [UIButton buttonWithType:UIButtonTypeCustom];
    finishBut.frame = CGRectMake(CGRectGetWidth(kbTView.frame) - 60.0, 5.0, 50.0, 30.0);
    [finishBut setTitle:@"完成" forState:UIControlStateNormal];
    finishBut.layer.borderWidth = 1.0;
    finishBut.layer.borderColor = [[UIColor whiteColor]CGColor];;
    finishBut.layer.masksToBounds = YES;
    finishBut.layer.cornerRadius = 5.0;
    [kbTView addSubview:finishBut];
    [finishBut addTarget:self action:@selector(keyboardDismiss) forControlEvents:UIControlEventTouchUpInside];
    return kbTView;
}

- (void)keyboardDismiss {
    [_tf resignFirstResponder];
}

然后我们再次运行:



我们在键盘上面添加了一个“完成”按钮,编辑完成后可以按下这个按钮来关闭键盘。











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值