当我在UIKeyboard
时,我必须在输入“完成”按钮时关闭UITextView
。
注意:我尝试使用UITextView
。它工作正常,我想在UITextview中实现相同的概念。我试过了
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
方法,但这有问题。
这可能吗?
答案 0 :(得分:2)
<强>夫特:强>
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if text == "\n" {
theTextView.resignFirstResponder()
return false
}
return true
}
答案 1 :(得分:1)
UITextView没有完成按钮的选项,因为它需要有返回按钮。您可以按下返回按钮,但不是真的推荐。编辑UITextView时推荐使用键盘的方法是在主视图或其他元素上点击手势识别器。
答案 2 :(得分:1)
使用以下代码可能对您有用:)
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
{
[textView resignFirstResponder];
return NO;
}
return YES;
}
答案 3 :(得分:1)
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
方法中你可以让第一个响应者辞职。
希望这有帮助。
干杯!
答案 4 :(得分:0)
在键盘的临时视图上添加完成按钮,并使用
实现完成方法 [textView resignFirstResponder];
并且不要忘记为textView设置委托。