Какао: Как сделать многострочное NSTextField? - PullRequest
10 голосов
/ 10 апреля 2011

Как сделать многострочное NSTextField? ОБНОВЛЕНИЕ: Я обнаружил в IB специальный тип NSTextField, называемый "Wrapped Text Field". Это многострочный, но когда я хочу получить новую строку, я должен нажать Ctrl + Enter. Но я хочу нажать только Enter, чтобы получить новую строку. Как я могу это сделать?

Ответы [ 2 ]

11 голосов
/ 10 апреля 2011

Нет способа указать это поведение только в Интерфейсном Разработчике.Вы можете сделать это с помощью сообщения делегата, как описано в этой технической записке QA1454 .

Вот пример сообщения делегата из технической заметки:

- (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;
}
6 голосов
/ 10 апреля 2011

Используя NSTextView, это многострочный NSTextField сорт, это подкласс NSText исправьте мой, если я не прав. NSTextView имеет NSTextStorage, который является подклассом NSAttributedString. Вам нужно дать ему NSAttributedString объект вместо NSString, чтобы заполнить его содержимое, поскольку оно может отображать цвета и т. Д.

[[yourTextView textStorage] setAttributedString:attrStr];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...