Jump to content

Функция Prompt() не активирует по умолчанию элемент ввода


Recommended Posts

Если вызвать функцию Prompt() то потом строка ввода не активна.

Было бы очень удобно, если бы она имела фокус ввода, чтобы не приходилось тянуться мышкой и щелкать по ней для активации.

Screenshot_1.jpg

Link to post
Share on other sites
4 minutes ago, x11 said:

Если вызвать функцию Prompt() то потом строка ввода не активна.

Было бы очень удобно, если бы она имела фокус ввода, чтобы не приходилось тянуться мышкой и щелкать по ней для активации.

Можете проверить на стандартном демо примере?

\FMSoft\Framework\uniGUI\Demos\Desktop\Prompt

 

Link to post
Share on other sites

Попробовал еще несколько тем, обнаружил, что на uni_sencha2_mono, uni_sencha_classic и uni_lavender тоже есть проблема.

Link to post
Share on other sites
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);
    });
});

 

  • Like 1
Link to post
Share on other sites
  • 4 weeks later...

В мобильной версии, кстати, тоже не активируется поле ввода сразу.

Link to post
Share on other sites
16 minutes ago, x11 said:

В мобильной версии, кстати, тоже не активируется поле ввода сразу.

Обходное решение.

Script:

Ext.onReady(function() {
    Ext.Msg.on('show', function() {
        var promt = Ext.Msg.getPrompt();
        if (promt) {
            promt.getFocusEl().focus()
        }
    });
});

 

  • Like 1
Link to post
Share on other sites

Спасибо большое.

 

Еще вопросик. А заголовок у Prompt() можно менять?

Screenshot_12.jpg

  • Upvote 1
Link to post
Share on other sites
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()
        }
    });
});

 

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...