AccessoryView на TextView без клавиатуры? - PullRequest
1 голос
/ 05 августа 2010

Я изучаю AccessoryViews и тестирую пример Apple: KeyBoardAccessory

Я пытаюсь показать вспомогательный вид, избегая отображения клавиатуры, но не могу этого сделать: - (

Я возвращаю NO в textViewShouldBeginEditing, чтобы избежать клавиатуры и анимации изменения размера TextView перед возвратом, но ничего не происходит.

Что я делаю не так?

- (void)viewWillAppear:(BOOL)animated {

    // Make the keyboard appear when the application launches.
    [super viewWillAppear:animated];
    [textView becomeFirstResponder];
}

- (BOOL)textViewShouldBeginEditing:(UITextView *)aTextView {
    NSLog(@"textViewShouldBeginEditing");
    /*
     You can create the accessory view programmatically (in code), in the same nib file as the view controller's main view, or from a separate nib file. This example illustrates the latter; it means the accessory view is loaded lazily -- only if it is required.
     */

    if (textView.inputAccessoryView == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"AccessoryView" owner:self options:nil];
        // Loading the AccessoryView nib file sets the accessoryView outlet.
        textView.inputAccessoryView = accessoryView;    
        // After setting the accessory view for the text view, we no longer need a reference to the accessory view.
        self.accessoryView = nil;
    }

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];

    textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, textView.frame.size.width, textView.frame.size.height - 100);

    [UIView commitAnimations];    

    return NO;
}

Ответы [ 3 ]

4 голосов
/ 06 августа 2010

inputAccessoryView для представления, чтобы подняться выше стандартной виртуальной клавиатуры Apple.Если вы не разрешите отображать экранную клавиатуру, то inputAccessoryView тоже не появится.

Если вы хотите ТОЛЬКО чтобы отображалась пользовательская клавиатура, а НЕ стандартная экранная клавиатура, вам следует использоватьinputView вместо inputAccessoryView.Смотрите разницу между inputView и inputAccessoryView здесь: http://developer.apple.com/iphone/library/documentation/uikit/reference/UITextView_Class/Reference/UITextView.html

1 голос
/ 28 июня 2012

Если вы действительно хотите только дополнительный вид, вам нужно установить входной вид для вида без высоты.

0 голосов
/ 14 ноября 2014

В Xcode 6 ios 8.1 Simulator показывает скрытую по умолчанию клавиатуру.(Я должен выбрать «Переключить программную клавиатуру», чтобы она появилась.)

Мне это нравится, потому что отображается только мое вспомогательное изображение.

У меня есть способ воспроизвести это программно (включить клавиатуруи выкл, не увольняйся)

Спасибо!

...