使用xCode 9和iOS 11

时间:2017-12-14 08:49:27

标签: delphi firemonkey ios11 xcode9

我们正在使用RADStudio 10.1 Berlin和FireMonkey为iOS开发应用程序。

使用适用于iOS 11.1.2(15B202)的Xcode 9.1(9B55)构建应用程序时,我们会在状态栏正下方的顶部显示一个白条。

即使我们根本不使用任何样式书,也会发生这种情况。

enter image description here

我们尝试了什么

  • 在较早的iOS版本上部署 - 没有问题。
  • 使用xCode 8进行编译 - 没问题。
  • 在Android上部署 - 没问题。

  • 更改' FormFactor.Devices'来自桌面'到了' iPad',并添加了iPhone'。问题仍然存在,我们尝试的每个组合都给了xCode 9和iOS 11的奇怪白条。

  • 我们也尝试在iOS模拟器上运行它,但是在模拟器本身遇到了问题。

  • 将属性Border.Styling设置为False。问题仍然存在。

  • 将Form.Caption设置为空字符串。问题仍然存在。

我们发现白条是状态栏。状态栏在上面我们神秘的白条上可见 它可能是某种导航栏,不幸的是FireMonkey似乎没有让我们访问内置控件。

我们在MCVE中复制了这个。

这是Delphi代码:

unit Unit6;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls, System.Actions, FMX.ActnList,
  FMX.StdActns, FMX.MediaLibrary.Actions;

type
  TForm6 = class(TForm)
    ActionList1: TActionList;
    TakePhotoFromCameraAction1: TTakePhotoFromCameraAction;
    SpeedButton1: TSpeedButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form6: TForm6;

implementation

{$R *.fmx}

end.

这是表格(FMX)的代码:

object Form6: TForm6
  Left = 0
  Top = 0
  Border.Styling = False
  BorderIcons = []
  ClientHeight = 480
  ClientWidth = 640
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [iPad]
  DesignerMasterStyle = 0
  object SpeedButton1: TSpeedButton
    Action = TakePhotoFromCameraAction1
    Enabled = True
    ImageIndex = -1
    Position.X = 144.000000000000000000
    Position.Y = 272.000000000000000000
    Visible = True
  end
  object ActionList1: TActionList
    Left = 64
    Top = 88
    object TakePhotoFromCameraAction1: TTakePhotoFromCameraAction
      Category = 'Media Library'
    end
  end
end

所以问题是,我们如何摆脱这个奇怪的酒吧?

1 个答案:

答案 0 :(得分:1)

BorderStyle设置为none可以解决问题。 来自documentation of Borderstyle

  

在iOS应用程序中,“无”使您的表单以全屏模式运行。同   任何其他值,您的iOS应用程序显示iOS状态栏