Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   XE4 und iOS: Auf UIApplication zugreifen? (https://www.delphipraxis.net/177513-xe4-und-ios-auf-uiapplication-zugreifen.html)

romber 11. Nov 2013 10:49

XE4 und iOS: Auf UIApplication zugreifen?
 
Hallo!

Ich habe hier im Forum einige Tutorials für iOS-Entwicklung gefunden, darunter dieses Tutorial zum ein- bzw. ausblenden der StatusBar: http://blogs.embarcadero.com/ao/2011/10/04/39141. Delphi XE4 kann die Code nicht kompilieren, weil die ganzen deklarierten FMX_ Units fehlen und auch der Unit iPhoneAll ist irgendie nicht da. Für welche Delphi-Version ist dieses Code überhaupt?

Auf die UIApplication wird in dem Tutorial so zugegriffen:

Delphi-Quellcode:
{$IFDEF FPC}
UIApplication.sharedApplication.setStatusBarHidden(not UIApplication.sharedApplication.isStatusBarHidden);
{$ENDIF}
In Delphi XE4 geht das gar nicht. So versuche ich unter Delphi XE4 auf die UIApplication zuzugreifen:

Delphi-Quellcode:
var
  MyApp: UIApplication;
begin
  MyApp := TUIApplication.Wrap(TUIApplication.OCClass.SharedApplication);
  MyApp.setStatusBarHidden(true, 1);
end;
Das Problem mit disem Code ist, dass die Statusleiste im Simulator ausgeblendet wird, auf dem Gerät nicht. Ausserdem sieht man im Tutorial, dass die verwendeten Pascal-Methoden praktisch mit Xcode-Methoden übereinstimmen. Das wird z.B. mit diese Zeile aus dem Tutorial deutlich:

Delphi-Quellcode:
UIApplication.sharedApplication.setStatusBarHidden_withAnimation(not UIApplication.sharedApplication.isStatusBarHidden, UIStatusBarAnimationFade);


Dort ist sogar die Animationsmethode angegeben. Welche Variante ist richtig?

RWarnecke 11. Nov 2013 11:40

AW: XE4 und iOS: Auf UIApplication zugreifen?
 
Unter welchem System hast Du es denn getestet ? iOS 7 oder iOS 6 ? Bei iOS 7 hat sich das ausblenden der Statusbar geändert. Selbst unter XCode direkt hatte ich es nicht hinbekommen, die Statusbar auszublenden. Probiere mal diesen Beitrag aus dem Blog aus, vielleicht funktinoiert er ja.

romber 11. Nov 2013 16:41

AW: XE4 und iOS: Auf UIApplication zugreifen?
 
Vielen Dank für die schnelle Reaktion!

Ich teste es unter iOS7. Tatsächlich, auch in der Xcode ist es jetzt anders. Dafür kann man kann jetzt für jeden ViewController die StatusBar ein- oder ausblenden oder die Hintergrundfarbe anpassen.

Mich ärgert nur, dass es auch während der Anzeige von SplashScreen die StatusBar angezeigt wird. Wenn ich jetzt in der .plist die StatusBar ausblende, dann bleibt sie für gesammte App ausgeblendet :(

Peter666 14. Jan 2014 19:18

AW: XE4 und iOS: Auf UIApplication zugreifen?
 
Ich greife das mal hier auf, weil es irgendwie nicht geht :(

In meiner PList habe ich die Eigenschaft
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>

gesetzt und wollte nun via sharedApplication.setStatusBarHidden(Value, UIStatusBarAnimationNone); dynamisch die Statusleiste aktivieren bzw. deaktivieren. Borderstyle ist auf none gesetzt.

Ich kann die Statusleiste Global deaktivieren in meiner App über die PList, aber ich will das dynamisch an und ausschalten.

Habt ihr vielleicht eine Idee?

arnof 14. Jan 2014 20:23

AW: XE4 und iOS: Auf UIApplication zugreifen?
 
Ich war ja im Dez bei den TechTak von Apple. Hier wurde das Thema mal Angesprochen. Du findest die Links zu den Vorführungen hier:

https://developer.apple.com/tech-talks/videos/

Das müsste in Modern Apps Part 1 oder 2 beschrieben worden sein, da es hier einige Neuerungen unter iOS7 gab (auch eigene Farben und sowas)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz