Подтвердить автозаполнение UITextview

Это кажется невозможным, но, возможно, у кого-то была такая же проблема.

Могу ли я принять автозаполнение программно или каким-то образом получить предложенное слово, которое всплывает? Моя проблема в том, что я фиксирую нажатие клавиши возврата / возврата, а затем перемещаю фокус в другое текстовое представление. При нажатии Enter / Backspace текстовое окно игнорирует предложенное автоматически слово. Кажется, что можно принять автозаполнение только нажатием пробела / точки (и возврата для новой строки). С помощью этого кода:

 - (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
                                replacementText:(NSString *)text {
    NSRange textViewRange = [textView selectedRange];

    // Handle newrow and backspace.  
    if(([text length] == 0) && (textViewRange.location== 0) && textViewRange.length==0){
        // BACKSPACE KEYSTROKE
        [delegate doSomethingWhenBackspace];
        return NO;      
    }else if ([text isEqualToString:@"\n"]){    
        // RETURN KEYSTROKE
        [delegate doSomethingWhenReturn];       
        return NO;      
    }

    return YES;
}

Я попытался программно добавить «пробел» при нажатии клавиши возврата, но это также игнорирует слово с автозаполнением.

else if ([text isEqualToString:@"\n"]){ 
                // Tryin to accept autocomplete with no result. 
                textview.text = [textview.text stringByAppendingString:@" "];
            // RETURN KEYSTROKE
            [delegate doSomethingWhenReturn];       
            return NO;      
        }

Есть предложения?

8
задан Brian 5 April 2013 в 20:53
поделиться