UiOS开发中ITextView回收或关闭键盘使用方法总结
程序员文章站
2024-03-02 11:43:10
ios开发中,发现uitextview没有像uitextfield中textfieldshouldreturn:这样的方法,那么要实现uitextview关闭键盘,就必须使...
ios开发中,发现uitextview没有像uitextfield中textfieldshouldreturn:这样的方法,那么要实现uitextview关闭键盘,就必须使用其他的方法,下面是可以使用的几种方法。
1.如果你程序是有导航条的,可以在导航条上面加多一个done的按钮,用来退出键盘,当然要先实uitextviewdelegate。
- (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.textview resignfirstresponder]; }
2.如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。
-(bool)textview:(uitextview *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text { if ([text isequaltostring:@"\n"]) { [textview resignfirstresponder]; return no; } return yes; }
这样无论你是使用电脑键盘上的回车键还是使用弹出键盘里的return键都可以达到退出键盘的效果。
3.第三种方法感觉效果比上面两种都好,就是在弹出的键盘上面加一个view来放置退出键盘的done按钮。
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]; [donebutton release]; [btnspace release]; [hellobutton release]; [topview setitems:buttonsarray]; [tvtextview setinputaccessoryview:topview]; -(ibaction)dismisskeyboard { [tvtextview resignfirstresponder]; }
以上所述是小编给大家介绍的uitextview回收或关闭键盘使用方法总结,希望对大家有所帮助
上一篇: Android实现沉浸式状态栏