在我的 UITextView 中,我已经完成了编辑,我希望调用我的 textViewShouldEndEditing 来移除键盘焦点。我已经尝试使用返回键,但它正在添加新行。我该怎么做才能删除 UITextView 的键盘。我已经完成了具有 SentNotification 的文本字段。在这里做什么?
问问题
1952 次
3 回答
2
为了使返回键关闭键盘,实现
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO; // to not insert the return character
}
在导航栏中实现一个按钮,用
[_textView resignFirstResponder];
于 2012-08-14T12:13:53.010 回答
2
如果想在按下回车键后隐藏键盘,实现如下UITextViewDelegate方法:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
// Did user press return key?
if([text isEqualToString:@"\n"]) {
// tell the textView to resign being first responder, which will also hide the keyboard
[textView resignFirstResponder];
// Don't allow textView to insert a LF into its text property
return NO;
}
// allow all other edits
return YES;
}
如果您想要多行,则不能使用返回键,因此您必须为此创建一个按钮。鉴于您的 ViewController 被推送到 UINavigationController 的导航堆栈上,请将以下代码添加到您的 init 方法中:
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonItemStyleDone
target:self
action:@selector(done)];
self.navigationItem.rightBarButtonItem = doneButton;
[doneButton release];
done 方法只是告诉 UITextView 辞去第一响应者的职务:
- (void)done;
{
[self.textView resignFirstResponder];
}
这显然要求您可以通过属性或 IBOutlet 访问您的 UITextView。
如果您不使用 UINavigationController,请向您的视图添加一个简单的 UIButton(例如通过您的视图 XIB 文件中的 Interface Builder)并通过目标操作调用done方法:
[button addTarget:self action:@selector(done) forControlEvents:UIControlEventTouchUpInside];
于 2012-08-14T12:20:28.170 回答
0
您必须在 .h 文件中为 textview 设置委托,UITextViewDelegate
然后编写以下方法来返回键盘。
-(void) textViewDidEndEditing:(UITextView *)textView
{
[textView resignFirstResponder];
}
于 2012-08-14T12:23:23.790 回答