Как предотвратить закрытие диалога при нажатии ввода или выхода?
У меня есть диалог, который я хотел бы оставить открытым, кроме случаев нажатия кнопок [x] или выхода. Диалоги, кажется, всегда закрываются, если вы нажмете escape или если вы нажмете enter, когда выбрано большинство объектов (например, строковые блоки), используете ли вы pose() или display(). Есть ли способ предотвратить это?
Некоторыми публичными примерами того, когда это происходит, являются "Пример: взаимодействие потоков и диалогов" Д. М. Митчелла и "Пример: диалог одной кнопки", но, похоже, он применим к любому диалогу.
Исключением является закрепленная палитра, но в 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")
}
1 ответ
Кажется, нет никакого способа предотвратить завершение модальных диалогов (те, которые представлены с помощью метода Pose UIFrame) с помощью нажатий клавиш, которые вы упоминаете. Однако будет ли немодальный диалог работать для вашего приложения? Такой диалог создается путем вызова метода Display для вашего объекта UIFrame, и он не закрывается с помощью esc или enter.