x11 Posted December 27, 2020 Share Posted December 27, 2020 Если вызвать функцию Prompt() то потом строка ввода не активна. Было бы очень удобно, если бы она имела фокус ввода, чтобы не приходилось тянуться мышкой и щелкать по ней для активации. Quote Link to comment Share on other sites More sharing options...
x11 Posted December 27, 2020 Author Share Posted December 27, 2020 Не проверял, но, скорей всего, что в мобильной версии такая же проблема. Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted December 27, 2020 Author Share Posted December 27, 2020 на стандартной теме проблемы нет, но если включить тему uni_sencha2, то проблема есть Quote 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'а Quote 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 тоже есть проблема. Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted January 25, 2021 Author Share Posted January 25, 2021 В мобильной версии, кстати, тоже не активируется поле ввода сразу. Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted January 25, 2021 Author Share Posted January 25, 2021 Спасибо большое. Еще вопросик. А заголовок у Prompt() можно менять? 1 Quote 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() можно менять? Я проанализирую. Quote 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 Quote 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. Quote 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". Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.