---
title: UIFocusSystem
framework: uikit
role: symbol
role_heading: Class
path: uikit/uifocussystem
---

# UIFocusSystem

Queries and reevaluates the currently focused item.

## Declaration

```swift
@MainActor class UIFocusSystem
```

## Overview

Overview Use a UIFocusSystem object to obtain the focus-related state for the objects of your app. You can get state information for your app’s views, view controllers, windows, and other objects that adopt the UIFocusEnvironment protocol. The UIFocusSystem object lists the currently focused item, if any, for a window or view hierarchy. You can use it to force the system to update the focus state, and you can register custom sounds to be played during focus changes.

## Topics

### Getting a focus system object

- [init(for:)](uikit/uifocussystem/init(for:).md)

### Getting the currently focused item

- [focusedItem](uikit/uifocussystem/focuseditem.md)

### Managing focus updates

- [requestFocusUpdate(to:)](uikit/uifocussystem/requestfocusupdate(to:).md)
- [updateFocusIfNeeded()](uikit/uifocussystem/updatefocusifneeded().md)

### Registering custom sounds

- [register(_:forSoundIdentifier:)](uikit/uifocussystem/register(_:forsoundidentifier:).md)

### Responding to focus-related keys and notifications

- [animationCoordinatorUserInfoKey](uikit/uifocussystem/animationcoordinatoruserinfokey.md)
- [didUpdateNotification](uikit/uifocussystem/didupdatenotification.md)
- [focusUpdateContextUserInfoKey](uikit/uifocussystem/focusupdatecontextuserinfokey.md)
- [movementDidFailNotification](uikit/uifocussystem/movementdidfailnotification.md)

### Structures

- [UIFocusSystem.DidUpdateMessage](uikit/uifocussystem/didupdatemessage.md)
- [UIFocusSystem.MovementDidFailMessage](uikit/uifocussystem/movementdidfailmessage.md)

### Initializers

- [init(forEnvironment:)](uikit/uifocussystem/init(forenvironment:).md)

### Type Methods

- [focusSystem(for:)](uikit/uifocussystem/focussystem(for:)-5htbd.md)
- [focusSystem(for:)](uikit/uifocussystem/focussystem(for:)-7tm2f.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)

## See Also

### Focus interactions

- [Navigating an app’s user interface using a keyboard](uikit/navigating-an-app-s-user-interface-using-a-keyboard.md)
- [About focus interactions for Apple TV](uikit/about-focus-interactions-for-apple-tv.md)
- [Adding user-focusable elements to a tvOS app](uikit/adding-user-focusable-elements-to-a-tvos-app.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIFocusUpdateContext](uikit/uifocusupdatecontext.md)
- [UIFocusItem](uikit/uifocusitem.md)
- [UIFocusMovementHint](uikit/uifocusmovementhint.md)
- [UIFocusItemContainer](uikit/uifocusitemcontainer.md)
- [UIFocusItemScrollableContainer](uikit/uifocusitemscrollablecontainer.md)
- [UIFocusGroupPriority](uikit/uifocusgrouppriority.md)
