我想提前感谢你的答案。我阅读了有关这方面的所有内容,但我无法解决。
我知道如何在UITextField上隐藏键盘,就像这样:
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[placename resignFirstResponder];
[address resignFirstResponder];
return YES;
}
但我也有一个UITextView,我不知道如何隐藏它。我不想用一个按钮来隐藏它我想在返回时用“完成”隐藏它。
我读过这样的话:
[textField setReturnKeyType: UIReturnKeyDone];
但......如何以及在何处实施它?我是新手,所以我需要一步一步地了解它。
非常感谢。 (抱歉,我无法发送图片......新用户;))
答案 0 :(得分:4)
很容易。在控制器中有textview委托并添加以下方法。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
使用此功能有一个缺点,用户无法编写多行语句。要解决这个问题,你可以在键盘上创建一个视图,并在那里有一个按钮,并添加动作来重新设置你的文本视图。
答案 1 :(得分:0)
@JanakNirmal Answers的附加内容,.h和.m的代码。对我来说很好。
@interface ViewController : UIViewController <UITextViewDelegate>
@property (weak, nonatomic) IBOutlet UITextView *textField; // connected with IB
@end
@interface ViewController ()
- (void)viewDidLoad
{
[super viewDidLoad];
// Done key and hide keyboard
[self.textField setDelegate:self];
[self.textField setReturnKeyType:UIReturnKeyDone];
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([text isEqualToString:@"\n"])
{
[textView resignFirstResponder];
}
return YES;
}
@end