在UITextView中禁用返回键

时间:2013-09-10 12:47:35

标签: iphone ios objective-c uitextview

我正在尝试禁用在UITextView中输入时找到的返回键。我希望文本没有像UITextField中找到的页面缩进。这是我到目前为止的代码:

- (BOOL)textView:(UITextView *)aTextView shouldChangeTextInRange:(NSRange)aRange replacementText:(NSString*)aText
{
if ([aTextView.text isEqualToString:@"\r\n"]) {
    return NO;
}

有什么想法吗?

5 个答案:

答案 0 :(得分:36)

尝试像这样使用..

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

    if([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
        return NO;
    }

    return YES;
}

答案 1 :(得分:17)

没有魔术硬编码字符串的另一种解决方案是:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:    (NSString *)text {
    if( [text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location == NSNotFound ) {
        return YES;
    }     

    return NO;
}

答案 2 :(得分:6)

在Swift 3+中添加:

guard text.rangeOfCharacter(from: CharacterSet.newlines) == nil else {
    return false
}

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool

的顶部

答案 3 :(得分:1)

我知道这是迟到的回复,但这段代码非常适合我。 这将最初禁用返回键,直到键入任何字符。

textfield.enablesReturnKeyAutomatically = YES;

通过Interface Builder设置此属性,
enter image description here

答案 4 :(得分:-1)

为什么不改变UITextView这样的返回键类型?

enter image description here