gpt4 book ai didi

objective-c - UITextView textviewshouldendediting 从未调用过

转载 作者:行者123 更新时间:2023-11-28 19:23:57 34 4
gpt4 key购买 nike

我有一个像这样的 UITextView 设置:

    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 40, 280, 240)];
[textView setBackgroundColor:[UIColor greenColor]];
[textView setFont:[UIFont fontWithName:@"MyriadPro-Regular" size:13]];
[textView setTextColor:[UIColor blackColor]];
[textView setText:@"Your Message...."];
[textView setBackgroundColor:[UIColor clearColor]];
[textView setDelegate:self];
[textView setReturnKeyType:UIReturnKeyDone];

我期望当用户按下键盘上的“完成”按钮时,将调用此方法(我已实现):

- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
NSLog(@"called");
[textView resignFirstResponder];
return YES;
}

但是这个方法永远不会被调用..我做错了什么?谢谢。

最佳答案

当您设置返回键类型时,它不会改变 TextView 的行为。在 Return 上,它将向 TextView 添加一个换行符。因此,如果您不希望您的 TextView 是多行的,您可以捕获 \nresignFirstResponder

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ( [text isEqualToString:@"\n"] ) {
[textView resignFirstResponder];
}

return YES;
}

旁注,textViewShouldEndEditing: 在您退出第一响应者状态后调用。

如果你想在 TextView 中保留换行符,你应该考虑使用 inputAccessoryView的 TextView 。一个例子是 here .

关于objective-c - UITextView textviewshouldendediting 从未调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6106761/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com