在sap.m.ObjectHeader中添加时,空格键在输入控件中不起作用

时间:2019-05-24 17:19:56

标签: sapui5 sap-fiori

我在键盘上的空格键(空格键)有问题,当我尝试在Fiori Application上的FeedInput中键入文本时,该键不起作用。如果按 Shift + Space ,则可以添加空白空间。这种组合在PC上有效,但在移动设备上无效。

Fiori application view

我知道发生此问题是因为我将FeedInput嵌入到<headerContainer>或其他一些UI元素中。实际上,它不仅与FeedInput不相关,而且与Input中的SmartFieldSmartTable等也不相关。

我可以看到SAP为类sap.m.HeaderContainer提供了以下信息:

  

提供水平布局的容器。它在移动设备上提供水平滚动。在桌面上,它提供向左滚动和向右滚动按钮。此控件支持键盘导航。您可以使用浏览内部内容。 Home 键将焦点放在第一个控件上,而 End 键将焦点放在最后一个控件上。使用 Enter Space 键选择控件。 (source)

我发现,如果我在浏览器调试器中删除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 个答案:

答案 0 :(得分:2)

这是由UI5中的错误引起的。在此修补程序移至稳定版本之前,您可能需要将IconTabBar移到ObjectHeader之外。

修改:请参见https://stackoverflow.com/a/56344973/5846045

答案 1 :(得分:0)

<IconTabBar>用作<ObjectHeader>的标头容器并没有错。实际上, <headerContainer>聚合等待<IconTabBar>作为实现"sap.m.ObjectHeaderContainer"的控件之一。

之所以不起作用,是因为commit:d05437d引入了回归,同时试图防止在按下空格键时滚动。有了commit:38f5481,现在一切都固定了。

  
      
  • 防止在ObjectHeader内按下所有 SPACE 会导致,如果Input内有HeaderContainer字段,则用户无法在其中输入空格它。
  •   
  • 另一方面,在ObjectHeader的所有交互式元素上仍然禁止使用 SPACE
  •   

openui5 sapui5 object header space regression fixed
演示:https://jsbin.com/takequm/edit?js,output