2017-10-09 99 views
0

一個觀點我想下面的代碼具有可重複隱藏和顯示的同時再次在其字段保留值的第二個觀點:隱藏和取消隱藏在紅色的語言

Red [] 

secondFstr: "" 
secondshownonce: false 
secondshowing: false 

secondview: does [ 
    secondshownonce: true 
    if not secondshowing [ 
     secondshowing: true 
     view [ below 
     text "second view" 
     f2: field secondFstr [] 
     b3: button "Hide" [ 
      secondshowing: false 
      unview ]]]] 

view [ below 
    text "first view" 
    b1: button "Print f2 text" [ 
      either not secondshownonce 
      [print "not shown"] 
      [print f2/text] ] 
    b2: button "Show 2nd view" [secondview] ] 

它的工作原理的所有權利,如果「隱藏'按鈕用於第二個視圖。但如果通過點擊右上角的'x'關閉第二個視圖,則不能再顯示。我怎麼解決這個問題?

+0

有沒有辦法掛接到接近事件? –

+0

關閉文檔不可用:http://www.red-by-example.org/index.html#0on-close。也不是在這個頁面上:http://www.mycode4fun.co.uk/red-beginners-reference-guide或在https://doc.red-lang.org/en/view.html – rnso

回答

1

您需要的處理程序添加到close事件子窗口上,以正確重置您的標誌,就像這樣:

view/options [ 
    below 
    text "second view" 
    f2: field secondFstr [] 
    b3: button "Hide" [ 
     secondshowing: false 
     unview 
    ] 
][ 
    actors: object [ 
     on-close: func [face event][ 
      secondshowing: false 
     ] 
    ] 
] 
+0

關閉第二個視圖後右上角'x',我無法重新打開它。 (如果我使用'隱藏'按鈕,它會重新打開)。 – rnso

+0

用我在這裏發佈的代碼替換第二個視圖代碼後,它工作正常。你不嘗試嗎? – DocKimbel