Как я могу управлять местоположением диалогового окна при использовании ShowDialog для отображения его?

Вы можете добавить это к классу по своему вкусу:

+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
    UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
    hud.labelText = title;
    return hud;
}

+ (void)dismissGlobalHUD {
    UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
    [MBProgressHUD hideHUDForView:window animated:YES];
}

Это может быть вызвано для любого класса. Вам не нужно сохранять строгую ссылку на HUD при использовании этих методов удобства класса.

В зависимости от вашей конкретной ситуации, вы, вероятно, также захотите обрабатывать случаи, когда новый hud запрашивается до того, как другой будет скрыт. Вы можете скрыть предыдущий hud, когда появляется новый или появляется какая-то очередь и т. Д.

Скрытие предыдущего экземпляра HUD перед показом нового довольно просто.

+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
    UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
    [MBProgressHUD hideAllHUDsForView:window animated:YES];
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
    hud.labelText = title;
    return hud;
}
34
задан Robert Harvey 13 November 2013 в 18:25
поделиться

3 ответа

Вы можете установить форму .StartPosition значение FormStartPosition.Manual , а затем установите для свойства Form.Location желаемое местоположение. Когда вы звоните ShowDialog , форма должна отображаться в желаемом месте.

MyForm frm = new MyForm();
frm.StartPosition = FormStartPosition.Manual;
frm.Location = new Point(10, 10);
frm.ShowDialog();
45
ответ дан 27 November 2019 в 16:36
поделиться

Я предполагаю, что вы используете форму, и в этом случае вы можете использовать перечисление Form.StartPosition. Вы можете найти больше об этом здесь и о поведении перечисления здесь .

21
ответ дан 27 November 2019 в 16:36
поделиться

Попробуйте использовать свойство StartPosition в форме.

4
ответ дан 27 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: