Клавиша пробела не работает в элементе управления вводом при добавлении в sap.m.ObjectHeader - PullRequest
1 голос
/ 24 мая 2019

У меня проблема с клавишей пробела (пробел) на клавиатуре, которая не работает, когда я пытаюсь набрать текст в FeedInput в приложении Fiori.Можно добавить пустое место, если я нажму Shift + Пробел .Эта комбинация работает на ПК, но не на мобильных устройствах.

Fiori application view

Я знаю, что проблема возникает, потому что я встраиваю FeedInput внутрь <headerContainer> или некоторые другие элементы пользовательского интерфейса.На самом деле это относится не только к FeedInput, но и к Input, SmartField в SmartTable и т. Д.

Я вижу, что SAP предоставляет следующую информацию для класса sap.m.HeaderContainer:

Контейнер с горизонтальной компоновкой.Он обеспечивает горизонтальную прокрутку на мобильных устройствах.На рабочем столе предусмотрены кнопки прокрутки влево и вправо.Этот элемент управления поддерживает навигацию с помощью клавиатуры.Вы можете использовать и для навигации по внутреннему содержимому.Клавиша Home фокусирует внимание на первом элементе управления, а клавиша End фокусирует внимание на последнем элементе управления.Используйте Введите или Пробел , чтобы выбрать элемент управления. (источник)

Я обнаружил, что если я удаляю прослушиватель событий в отладчике браузера для KEYPRESS body#content.sapUiBody, пробел начинает нормально работать для всех типовтекстовые поля.

Event handler

<ObjectHeader id="ohDetails"
  numberState="Success"
  responsive="true"
>
  <headerContainer>
    <IconTabBar id="itb1"
      select=".onIconTabBarSelect"
      expandable="false"
    >
      <items>
        <!-- ... -->
        <IconTabFilter id="iftLog"
          key="logKey"
          icon="sap-icon://notes"
        >
          <VBox alignContent="End">
            <FeedInput id="fiComment"
              class="sapUiSmallMarginTopBottom"
              post=".onSubmitComment"
              icon="sap-icon://comment"
              placeholder="{i18n>plhFeedInput}"
            />
            <!-- ... -->
          </VBox>
        </IconTabFilter>
      </items>
    </IconTabBar>
  </headerContainer>
</ObjectHeader>       

Ответы [ 2 ]

2 голосов
/ 26 мая 2019

Это вызвано ошибкой в ​​UI5. Пока исправление не переведено на стабильную версию, вы можете переместить IconTabBar за пределы ObjectHeader.

Редактировать : См. https://stackoverflow.com/a/56344973/5846045

0 голосов
/ 28 мая 2019

Нет ничего плохого в том, чтобы поместить <IconTabBar> в качестве контейнера заголовка <ObjectHeader>.Фактически, агрегация <headerContainer> ожидает <IconTabBar> в качестве одного из элементов управления, который реализует "sap.m.ObjectHeaderContainer".

. Причина, по которой это не сработало, заключалась в регрессии, введенной сcommit:d05437d при попытке предотвратить прокрутку при нажатии пробела.С commit:38f5481 теперь все исправлено.

  • Предотвращение всех нажатий ПРОБЕЛ , когда внутри ObjectHeader это вызвало, в случае еслиПоле Input внутри HeaderContainer, пользователь не может ввести в него пробел.
  • С другой стороны, SPACE по-прежнему запрещено для всех интерактивных элементов ObjectHeader.

openui5 sapui5 object header space regression fixed
Демонстрация: https://jsbin.com/takequm/edit?js,output

...