1

We're developing an app for iOS using RADStudio 10.1 Berlin and FireMonkey.

When building the app using Xcode 9.1 (9B55) for iOS 11.1.2 (15B202), we get a white bar at the top, just below the status bar.

This happens even if we don't use any stylebooks at all.

enter image description here

What we've tried

  • Deploying on an earlier iOS version - no problems.
  • Compiling using xCode 8 - no problems.
  • Deploying on Android - no problems.

  • Changing 'FormFactor.Devices' from 'Desktop' to 'iPad', and adding 'iPhone'. Problem remained, every combination that we tried gave the strange white bar with xCode 9 and iOS 11.

  • We also tried running this on the iOS simulator, but were having trouble with the Simulator itself.

  • Set the property Border.Styling to False. Problem remained.

  • Set the Form.Caption to an empty string. Problem remained.

We observed that the white bar is not the status bar. The status bar is visible above our mysterious white bar.
It could be a navigation bar of some sort, unfortunately FireMonkey does not seem to give us access to built-in controls.

We reproduced this in an MCVE.

This is the Delphi code:

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.

This is the code of the Form (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

So the question is, how do we get rid of this strange bar?

1 Answers1

1

Setting the BorderStyle to none could work around the problem. From the documentation of Borderstyle:

In iOS applications, None makes your form run in fullscreen mode. With any other value, your iOS app shows the iOS status bar

Hans
  • 2,220
  • 13
  • 33