Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198
SpringBoard (Class): Difference between revisions - iPhone Development Wiki

SpringBoard (Class): Difference between revisions

From iPhone Development Wiki
m (→‎References: Update link from iOS 3)
(15 intermediate revisions by 9 users not shown)
Line 4: Line 4:


== Monitoring Orientation of Top App ==
== Monitoring Orientation of Top App ==
Whenever the orientation of the top application may be changed, <tt>-[SpringBoard noteUIOrientationChanged:display:]</tt> will be called. Therefore, you can hook this method to be notified of this info. The orientation (as angle in degrees) can be received with <tt>-[SpringBoard UIOrientation]</tt>.
Whenever the orientation of the top application is changed, <tt>-[SpringBoard noteUIOrientationChanged:display:]</tt> is called. Therefore, you can hook this method to be notified of the event.
 
You can also hook SpringBoard's <tt>-(void)noteInterfaceOrientationChanged:(int)arg1 duration:(float)arg2</tt>
 
== Orientation ==
 
<tt>activeInterfaceOrientation</tt> shows present orientation 
 
<tt>interfaceOrientationForCurrentDeviceOrientation</tt> shows the device orientation 
 
Q: When will these be different? 
 
A: If you have the device locked in portrait but a game plays in landscape these values will be different. activeInterfaceOrientation will be in landscape while interfaceOrientationForCurrentDeviceOrientation will still be in the locked portrait.


== Sending messages to SpringBoard ==
== Sending messages to SpringBoard ==
Because SpringBoard nherits UIApplication you can send messages like this: <tt>[[SpringBoard sharedApplication] aMethod]</tt>
Because SpringBoard inherits from UIApplication, you can send messages to it as follows: <tt>[[SpringBoard sharedApplication] aMethod]</tt>
 
== Getting the top SBApplication ==
A reference to the top SBApplication may be obtained by using the following method: <tt>[[SpringBoard sharedApplication] _accessibilityFrontMostApplication]</tt>.
 
== Monitoring when a new app or the homescreen is displayed ==
 
Whenever a different app is displayed, <tt>frontDisplayDidChange:(id)newDisplay</tt> is called. <tt>newDisplay</tt> is a reference to the SBApplication of the displayed app if the app was switched to, or it is nil if the homescreen is now showing. However, in some situations, it may be a reference to a <tt>UIViewController</tt>. For example, when the lockscreen is shown, <tt>newDisplay</tt> references an instance of <tt>SBLockScreenViewController</tt>. Make sure you account this in your tweak.


== References ==
== References ==
* Header: http://github.com/kennytm/iphone-private-frameworks/blob/master/SpringBoard/SpringBoard-Class.h
* Header: https://headers.cynder.me/index.php?sdk=ios/15.0&fw=PrivateFrameworks/SpringBoard.framework&file=Headers/SpringBoard.h
 
== Sending messages to SpringBoard ==
Since SpringBoard is UIApplication you can send messages like this: <tt>[[SpringBoard sharedInstance] aMethod]</tt>


{{occlass|library=SpringBoard.app|navbox=1}}
{{occlass|library=SpringBoard.app|navbox=1}}

Revision as of 05:43, 27 July 2022

SpringBoard is the singleton class that manages the SpringBoard application.

Monitoring Orientation of Top App

Whenever the orientation of the top application is changed, -[SpringBoard noteUIOrientationChanged:display:] is called. Therefore, you can hook this method to be notified of the event.

You can also hook SpringBoard's -(void)noteInterfaceOrientationChanged:(int)arg1 duration:(float)arg2

Orientation

activeInterfaceOrientation shows present orientation

interfaceOrientationForCurrentDeviceOrientation shows the device orientation

Q: When will these be different?

A: If you have the device locked in portrait but a game plays in landscape these values will be different. activeInterfaceOrientation will be in landscape while interfaceOrientationForCurrentDeviceOrientation will still be in the locked portrait.

Sending messages to SpringBoard

Because SpringBoard inherits from UIApplication, you can send messages to it as follows: [[SpringBoard sharedApplication] aMethod]

Getting the top SBApplication

A reference to the top SBApplication may be obtained by using the following method: [[SpringBoard sharedApplication] _accessibilityFrontMostApplication].

Monitoring when a new app or the homescreen is displayed

Whenever a different app is displayed, frontDisplayDidChange:(id)newDisplay is called. newDisplay is a reference to the SBApplication of the displayed app if the app was switched to, or it is nil if the homescreen is now showing. However, in some situations, it may be a reference to a UIViewController. For example, when the lockscreen is shown, newDisplay references an instance of SBLockScreenViewController. Make sure you account this in your tweak.

References