2016-04-22 68 views
2

我有一個對話框,我想保持打開,除非點擊[x]或退出按鈕。無論您使用pose()還是display(),如果您選擇了大多數對象(例如字符串框),您都可以使用對話框中的對話框來關閉對話框。有沒有辦法來防止這種情況?如何防止在進入或退出時關閉對話框?

一些公開的例子是DM Mitchell的「Example:Thread and Dialog Interaction」和「Example:Single Button Dialog」,但它似乎適用於任何對話框。

這個異常似乎是一個停靠的調色板,但是這個功能似乎在GMS2.3/GMS3中相當有限。

示例代碼進行測試:

class myUItest:UIframe 
{ 
    object Init(object self) 
    { 
     TagGroup dlgTGitems 
     TagGroup dlgTG = DLGCreateDialog("Modal",dlgTGitems) 
     TagGroup dlgField = DLGCreateIntegerField(12,20) 
     dlgTGitems.DLGAddElement(dlgField) 
     return self.super.init(dlgTG) 
    } 
} 

{ 
    object DLG = ALLOC(myUItest).Init() 
    DLG.Pose() 
    DLG.display("Modeless") 
} 
+0

非常好的問題,謝謝。我*認爲*答案是currenlty「不」,因爲腳本對話不能攔截按鍵,但我會調查一下。 – BmyGuest

回答

0

似乎有沒有辦法阻止模態對話框通過你所提到的按鍵(那些通過UIFrame的姿態呈現方法)的終止。但是,對於您的應用程序,無模式對話框會起作用嗎?這樣的對話框是通過調用UIFrame對象上的Display方法創建的,並且不通過esc或enter鍵關閉。

+0

對不起,我應該是特定的。我使用Display()方法調用,與我提到的例子類似。他們也關閉esc或進入。謝謝! – AWag

+1

感謝您指出這一點。這似乎是GMS 3中的新行爲。當我在GMS 2.3.2(888)中運行測試腳本時,當我點擊'esc'或'enter'時,無模式對話框不會關閉。 GMS 3似乎還將默認按鍵動作鏈接到單個按鈕(或者可能是當前的默認按鈕)。點擊'enter'或'space'似乎點擊了按鈕。 GMS 2.3.2似乎沒有這樣做。這種改變的行爲肯定會對我的幾個腳本產生影響。希望有一種方法可以解決它。 –

+1

@AWag無模式對話框的更改行爲是GMS 3版本報告的錯誤,並將恢復爲GMS 2行爲。還有一個額外的功能請求,允許從腳本對話框中截取鍵擊的情況也歸檔了,這要歸功於這裏的這個問題。 – BmyGuest

相關問題