有沒有一種簡單的方法可以使其發揮作用?接受換行的簡單文本輸入字段
text = "";
DialogInput[{TextCell["Try to type a text with linebreaks :-)"],
InputField[Dynamic[text], String],
Button["Ok", DialogReturn[text]]}]
問題是輸入Return
後InputField終止。我只想要一個簡單的文本輸入字段。
有沒有一種簡單的方法可以使其發揮作用?接受換行的簡單文本輸入字段
text = "";
DialogInput[{TextCell["Try to type a text with linebreaks :-)"],
InputField[Dynamic[text], String],
Button["Ok", DialogReturn[text]]}]
問題是輸入Return
後InputField終止。我只想要一個簡單的文本輸入字段。
謝謝你提醒Leonid。代碼如下:
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的默認Return鍵操作,您可以使用NotebookEventActions->{}
。這可以有效地阻止對話在輸入過程中消失。
太棒了!我刪除了我的帖子。我希望那些投了贊成票的人會爲你的答覆花費一些額外的票數,因爲這是選票所屬的地方。 –
謝謝,作品完美! – phantomas1234
Chris Degnen在這裏發佈了他對此問題的解決方案:http://groups.google.com/group/comp.soft-sys.math.mathematica/browse_thread/thread/3a2b1cfa8efa6df9(請參閱他最後一篇文章) –
@Leonid :你應該把它寫成一個答案(或者邀請Chris來)。 – Simon
@Simon好吧,謝謝你的建議,這是有道理的。我發佈了它,雖然如果克里斯自己做了它會更好 - 他花了很大的精力來實現它,這是一個不平凡的問題。我只能爲自己說話,但我在某個時候放棄了,直到我看到他的帖子。 –