diff --git a/platform/iphone/display_server_iphone.mm b/platform/iphone/display_server_iphone.mm
index aafee495942..1721da3db60 100644
--- a/platform/iphone/display_server_iphone.mm
+++ b/platform/iphone/display_server_iphone.mm
@@ -492,7 +492,22 @@ Size2i DisplayServerIPhone::screen_get_size(int p_screen) const {
 }
 
 Rect2i DisplayServerIPhone::screen_get_usable_rect(int p_screen) const {
-	return Rect2i(screen_get_position(p_screen), screen_get_size(p_screen));
+	if (@available(iOS 11, *)) {
+		UIEdgeInsets insets = UIEdgeInsetsZero;
+		UIView *view = AppDelegate.viewController.godotView;
+
+		if ([view respondsToSelector:@selector(safeAreaInsets)]) {
+			insets = [view safeAreaInsets];
+		}
+
+		float scale = screen_get_scale(p_screen);
+		Size2i insets_position = Size2i(insets.left, insets.top) * scale;
+		Size2i insets_size = Size2i(insets.left + insets.right, insets.top + insets.bottom) * scale;
+
+		return Rect2i(screen_get_position(p_screen) + insets_position, screen_get_size(p_screen) - insets_size);
+	} else {
+		return Rect2i(screen_get_position(p_screen), screen_get_size(p_screen));
+	}
 }
 
 int DisplayServerIPhone::screen_get_dpi(int p_screen) const {