单击完成按钮后,我在调整键盘时出现问题。我正在使用textView
-(BOOL)textViewShouldReturn:(UITextView *)textView
{
if(textView == addressView)
{
if(isNotif)
{
[self setViewMovedUp:NO];
}
textView.text= [textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[addressView resignFirstResponder];
}
return YES;
}
光标不是键盘重新签名,而是在文本字段中转到新行。 请帮帮我。
谢谢 Praveena。
答案 0 :(得分:5)
修正了KingOfBliss的回答:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (textView == messageInput) {
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
}
return YES;
}
答案 1 :(得分:4)
使用以下代理
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (textView == YourTextField){
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
}
return YES;
}
通常在textView中,返回键用于将\ n添加到文本中,因此最好在UItextView的顶部添加一些其他按钮并在那里编写resigning函数。
修改强>
没有此类委托-(BOOL)textViewShouldReturn:(UITextView *)textView
答案 2 :(得分:1)
如果视图层次结构中此textView上方的ViewController不是此textView的委托,则会发生这种情况。如果不是那么ViewController永远不会得到消息textViewShouldReturn。在创建了subView(UITextView)之后的viewController中。
aTextView.delegate = self;
要检查以确保它被调用,请将此添加到您的函数并测试
NSLog(@"resigning first responder");
这将测试该函数是否被称为
答案 3 :(得分:0)
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
就我的情况而言已经足够了。