x11 Posted December 27, 2020 Share Posted December 27, 2020 Если вызвать функцию Prompt() то потом строка ввода не активна. Было бы очень удобно, если бы она имела фокус ввода, чтобы не приходилось тянуться мышкой и щелкать по ней для активации. Link to comment Share on other sites More sharing options...
x11 Posted December 27, 2020 Author Share Posted December 27, 2020 Не проверял, но, скорей всего, что в мобильной версии такая же проблема. Link to comment Share on other sites More sharing options...
Sherzod Posted December 27, 2020 Share Posted December 27, 2020 4 minutes ago, x11 said: Если вызвать функцию Prompt() то потом строка ввода не активна. Было бы очень удобно, если бы она имела фокус ввода, чтобы не приходилось тянуться мышкой и щелкать по ней для активации. Можете проверить на стандартном демо примере? \FMSoft\Framework\uniGUI\Demos\Desktop\Prompt Link to comment Share on other sites More sharing options...
x11 Posted December 27, 2020 Author Share Posted December 27, 2020 на стандартной теме проблемы нет, но если включить тему uni_sencha2, то проблема есть Link to comment Share on other sites More sharing options...
Sherzod Posted December 27, 2020 Share Posted December 27, 2020 1 minute ago, x11 said: но если включить тему uni_sencha2, то проблема есть Да, "до первой активации" Promt'а Link to comment Share on other sites More sharing options...
x11 Posted December 27, 2020 Author Share Posted December 27, 2020 Попробовал еще несколько тем, обнаружил, что на uni_sencha2_mono, uni_sencha_classic и uni_lavender тоже есть проблема. Link to comment Share on other sites More sharing options...
Sherzod Posted December 27, 2020 Share Posted December 27, 2020 1 hour ago, x11 said: Попробовал еще несколько тем, обнаружил, что на uni_sencha2_mono, uni_sencha_classic и uni_lavender тоже есть проблема. Обходной путь... Для десктопной. MainForm -> Script: Ext.onReady(function() { Ext.Msg.on('show', function() { Ext.defer(function() { var inputEl = Ext.WindowManager.getActive().getEl().select('input').elements[0]; var textareaEl = Ext.WindowManager.getActive().getEl().select('textarea').elements[0]; if (inputEl) { inputEl.focus() } if (textareaEl) { textareaEl.focus() } }, 100); }); }); 1 Link to comment Share on other sites More sharing options...
x11 Posted January 25, 2021 Author Share Posted January 25, 2021 В мобильной версии, кстати, тоже не активируется поле ввода сразу. Link to comment Share on other sites More sharing options...
Sherzod Posted January 25, 2021 Share Posted January 25, 2021 16 minutes ago, x11 said: В мобильной версии, кстати, тоже не активируется поле ввода сразу. Обходное решение. Script: Ext.onReady(function() { Ext.Msg.on('show', function() { var promt = Ext.Msg.getPrompt(); if (promt) { promt.getFocusEl().focus() } }); }); 1 Link to comment Share on other sites More sharing options...
x11 Posted January 25, 2021 Author Share Posted January 25, 2021 Спасибо большое. Еще вопросик. А заголовок у Prompt() можно менять? 1 Link to comment Share on other sites More sharing options...
Sherzod Posted January 25, 2021 Share Posted January 25, 2021 12 minutes ago, x11 said: Еще вопросик. А заголовок у Prompt() можно менять? Я проанализирую. Link to comment Share on other sites More sharing options...
Sherzod Posted January 25, 2021 Share Posted January 25, 2021 32 minutes ago, x11 said: Еще вопросик. А заголовок у Prompt() можно менять? Одно из возможных решений на мой взгляд, попробуйте: var titles = new Map(); titles.set('x-msgbox-error', 'Ошибка'); titles.set('x-msgbox-warning', 'Предупреждение'); titles.set('x-msgbox-info', 'Информация'); titles.set('x-msgbox-question', 'Подтверждение'); Ext.onReady(function() { Ext.Msg.on('show', function() { Ext.Msg.setTitle(titles.get(Ext.Msg.getIcon())); var promt = Ext.Msg.getPrompt(); if (promt) { promt.getFocusEl().focus() } }); }); 1 Link to comment Share on other sites More sharing options...
x11 Posted December 1, 2021 Author Share Posted December 1, 2021 On 12/27/2020 at 9:44 PM, Sherzod said: Для десктопной. Подскажите, а как сюда к конкретному окну ввода Promp() добавить маску ввода, например, маску ввода IP. Link to comment Share on other sites More sharing options...
Sherzod Posted December 1, 2021 Share Posted December 1, 2021 1 hour ago, x11 said: Подскажите, а как сюда к конкретному окну ввода Promp() добавить маску ввода, например, маску ввода IP. Последовательность примерного обходного решения: 1. Создать глобальную переменную ("inputEl") на стороне клиента. ... inputEl = Ext.WindowManager.getActive().getEl().select('input').elements[0]; 2. Перед вызовом Promt, очисть маску ввода у "inputEl". 3. Задать маску при необходимости для "inputEl". Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now