当我进入时,我必须关闭UIKeyboard
输入“完成”按钮UITextView
。
注意:我用UITextView
. 它工作正常,我想在 UITextview 中实现相同的概念。我试过了
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
方法,但这有问题。
这可能吗?
当我进入时,我必须关闭UIKeyboard
输入“完成”按钮UITextView
。
注意:我用UITextView
. 它工作正常,我想在 UITextview 中实现相同的概念。我试过了
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
方法,但这有问题。
这可能吗?
迅速:
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if text == "\n" {
theTextView.resignFirstResponder()
return false
}
return true
}
UITextView 没有完成按钮的选项,因为它需要有返回按钮。您可以按下返回按钮,但实际上并不推荐。编辑 UITextView 时关闭键盘的推荐方法是在主视图或其他元素上点击手势识别器。
使用以下代码,可能对您有用:)
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
{
[textView resignFirstResponder];
return NO;
}
return YES;
}
Ivan Alek 是对的,UITextView
需要返回按钮才能将光标移动到下一行。您可以在键盘上添加视图并从按钮关闭键盘。像这样:
UIToolbar *toolbar = [[[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)] autorelease];
UIBarButtonItem *item2 = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeKeyboard)] autorelease];
UIBarButtonItem *item1 = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];
[toolbar setItems:[NSArray arrayWithObjects:item1 , item2, nil]];
[textView setInputAccessoryView:toolbar];
然后在该closeKeyboard
方法中,您可以辞去第一响应者的职务。
希望这可以帮助。
干杯!
在键盘的辅助视图上添加完成按钮并实现完成方法
[textView resignFirstResponder];
并且不要忘记为 textView 设置委托。