Технические вопросы и ответы QA1454

Как заставить NSTextField принять вкладку, клавиши Return и клавиши Enter.

Q: Как я заставляю NSTextField принять клавишу Tab, а также клавиши Return и клавиши Enter как разрывы строки?

A: Стоит отметить это NSTextField повреждения новой строки поддержек при помощи Возврата опции или Опции - Входят. Но при большинстве обстоятельств самое простое решение состояло бы в том, чтобы использовать NSTextView вместо этого.

Таким образом, необходимо спросить себя, «почему» Вы хотите продолжить использовать NSTextField. Вот список возможных причин:

Метод делегата

Если Вы решаете продолжить использовать NSTextField, разрешение клавиши Tab и/или разрешение входят, и клавиши Return для разрывов строки могут быть достигнуты путем реализации следующего метода делегата:

- (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector;

Имя метода doCommandBySelector означает «попытку выполнить обозначенный метод». Это происходит или выгнано NSResponder класс.

Этот метод делегата является частью NSControl, таким образом, это найдено в NSControl.h, не в NSTextField.h.

  Метод делегата перечисления 1 В качестве примера для NSTextField.

- (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector
{
    BOOL result = NO;
 
    if (commandSelector == @selector(insertNewline:))
    {
        // new line action:
        // always insert a line-break character and don’t cause the receiver to end editing
        [textView insertNewlineIgnoringFieldEditor:self];
        result = YES;
    }
    else if (commandSelector == @selector(insertTab:))
    {
        // tab action:
        // always insert a tab character and don’t cause the receiver to end editing
        [textView insertTabIgnoringFieldEditor:self];
        result = YES;
    }
 
    return result;
}

Для получения дополнительной информации о NSTextField и NSTextView относятся к текстовому Руководству по архитектуре Какао.



История версии документа


ДатаПримечания
12.05.2014

Обновленная ссылка к текстовому Руководству по архитектуре Какао.

09.10.2006

Новый документ, описывающий, как заставить управление NSTextField принять вкладку, клавиши Return и клавиши Enter при помощи метода делегата отгрузки управления.