UITextView使用技巧(二)

本文介绍了三种在iOS应用中关闭软键盘的有效方法:通过在导航栏上添加一个完成按钮;将回车键设为退出键盘的触发键;在键盘上方增加一个包含退出按钮的视图。

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

关闭键盘的几种方式



(1)如果你程序是有导航条的,可以在导航条上面加一个Done的按钮,用来退出键盘。代码如下:

- (void)textViewDidBeginEditing:(UITextView *)textView
{
    UIBarButtonItem *done = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                           target:self
                                                                           action:@selector(leaveEditMode)] autorelease];
    self.navigationItem.rightBarButtonItem = done;
}

- (void)textViewDidEndEditing:(UITextView *)textView
{
    self.navigationItem.rightBarButtonItem = nil;
}

- (void)leaveEditMode
{    
    [self.myTextView resignFirstResponder];
}

(2)如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。代码如下:

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
        return NO;
    }
    
    return YES;
}

(3)也可以在弹出的键盘上面加一个view来放置退出键盘的Done按钮。代码如下:

#import "ViewController.h"

@implementation ViewController
@synthesize myTextView;

#pragma mark - view life cycle
- (void)viewDidLoad
{
    [super viewDidLoad];
	
    UIToolbar *topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
    [topView setBarStyle:UIBarStyleBlack];
    UIBarButtonItem *helloButton = [[UIBarButtonItem alloc]initWithTitle:@"Hello" style:UIBarButtonItemStyleBordered target:self action:nil];
    UIBarButtonItem *btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];
    NSArray * buttonsArray = [NSArray arrayWithObjects:helloButton,btnSpace,doneButton,nil];
    [topView setItems:buttonsArray];
    [doneButton release];
    [btnSpace release];
    [helloButton release];
    [self.myTextView setInputAccessoryView:topView];
}

- (void)dismissKeyBoard
{
    [self.myTextView resignFirstResponder];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值