选项卡在 dm 脚本的对话框中不起作用

Tabs are not working in dialog in dm-script

为什么选项卡不显示在对话框的 dm 脚本中?


当我创建一个包含三个选项卡(和 table 布局)的简单对话框时,选项卡不显示。出现以下对话框:

我期待的是这样的:

我使用了以下示例代码:

class TestDialog : UIFrame{
    TagGroup createContent(object self){
        number total_length = 3
        TagGroup tabs = DLGCreateTabList(total_length);

        for(number i = 0; i < total_length; i++){
            TagGroup content = DLGCreateGroup();
            content.DLGLayout(DLGCreateTableLayout(3, 1, 0));

            TagGroup l = DLGCreateLabel("Row 1 of tab " + (i + 1));
            content.DLGAddElement(l);

            TagGroup v = DLGCreateLabel("Row 2 of tab " + (i + 1));
            content.DLGAddElement(v);

            TagGroup c = DLGCreateCheckBox("Checkbox of tab " + (i + 1));
            content.DLGAddElement(c);

            TagGroup tab = tabs.DLGAddTab("Tab " + (i + 1));
            tab.DLGAddElement(content);
        }

        return tabs;
    }

    object init(object self){
        return self.super.init(self.createContent())
    }
}

object dialog = alloc(TestDialog).Init();
dialog.pose();

好的,我知道了。似乎添加选项卡列表作为对话框的直接子项不起作用。选项卡列表周围需要有一个

class TestDialog : UIFrame{
    TagGroup createContent(object self){
        number total_length = 3
        TagGroup tabs = DLGCreateTabList(total_length);

        for(number i = 0; i < total_length; i++){
            TagGroup content = DLGCreateGroup();

            // ...

            TagGroup tab = tabs.DLGAddTab("Tab " + (i + 1));
            tab.DLGAddElement(content);
        }

        // this is the important part
        TagGroup wrapper = DLGCreateGroup();
        wrapper.DLGAddElement(tabs);

        return wrapper;
    }

    object init(object self){
        return self.super.init(self.createContent())
    }
}

object dialog = alloc(TestDialog).Init();
dialog.pose();