Простое поле ввода текста, допускающее разрывы строк - PullRequest
8 голосов
/ 04 августа 2011

Есть ли простой способ заставить это работать?

text = "";
DialogInput[{TextCell["Try to type a text with linebreaks :-)"],
  InputField[Dynamic[text], String], 
  Button["Ok", DialogReturn[text]]}]

Проблема в том, что InputField завершается после ввода Return.Я просто хочу простое поле ввода текста.

1 Ответ

11 голосов
/ 05 августа 2011

Спасибо за хедз-ап Леонид. Вот код:

text = "";
DialogInput[{TextCell["Try to type a text with linebreaks :-)"], 
  InputField[Dynamic[text], String, FieldSize -> {30, 6}], 
  DefaultButton[DialogReturn[text]]}, 
 NotebookEventActions -> {"ReturnKeyDown" :> 
    FrontEndExecute[NotebookWrite[InputNotebook[], "\n"]]}]

Оператор FrontEndExecute немного проще в этой версии.

Кстати, чтобы очистить действие клавиши возврата по умолчанию для NotebookEventActions, вы можете использовать NotebookEventActions->{}. Это может быть полезно для остановки исчезновения диалогов при вводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...