---
title: UIFocusEnvironment
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uifocusenvironment
---

# UIFocusEnvironment

A set of methods that define the focus behavior for a branch of the view hierarchy.

## Declaration

```swift
@MainActor protocol UIFocusEnvironment : NSObjectProtocol
```

## Overview

Overview The UIFocusEnvironment protocol provides a common interface for specifying and reacting to focus behavior throughout your app. Classes in UIKit that conform to this protocol include UIView, UIViewController, UIWindow, and UIPresentationController — in other words, classes that are either directly or indirectly in control of views on the screen.

## Topics

### Requesting focus update

- [setNeedsFocusUpdate()](uikit/uifocusenvironment/setneedsfocusupdate().md)
- [updateFocusIfNeeded()](uikit/uifocusenvironment/updatefocusifneeded().md)

### Validating focus movements

- [shouldUpdateFocus(in:)](uikit/uifocusenvironment/shouldupdatefocus(in:).md)

### Responding to focus updates

- [didUpdateFocus(in:with:)](uikit/uifocusenvironment/didupdatefocus(in:with:).md)

### Controlling user-generated focus movements

- [preferredFocusEnvironments](uikit/uifocusenvironment/preferredfocusenvironments.md)
- [preferredFocusedView](uikit/uifocusenvironment/preferredfocusedview.md)

### Getting the sound to play during updates

- [Using custom sounds for focus movement](uikit/using-custom-sounds-for-focus-movement.md)
- [soundIdentifierForFocusUpdate(in:)](uikit/uifocusenvironment/soundidentifierforfocusupdate(in:).md)
- [UIFocusSoundIdentifier](uikit/uifocussoundidentifier.md)

### Checking the ancestry of the environment

- [parentFocusEnvironment](uikit/uifocusenvironment/parentfocusenvironment.md)
- [focusItemContainer](uikit/uifocusenvironment/focusitemcontainer.md)

### Identifying the focus group

- [focusGroupIdentifier](uikit/uifocusenvironment/focusgroupidentifier.md)

### Instance Methods

- [contains(_:)](uikit/uifocusenvironment/contains(_:)-4budh.md)
- [contains(_:)](uikit/uifocusenvironment/contains(_:)-8yqav.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Inherited By

- [UIFocusItem](uikit/uifocusitem.md)

### Conforming Types

- [UIActionSheet](uikit/uiactionsheet.md)
- [UIActivityIndicatorView](uikit/uiactivityindicatorview.md)
- [UIActivityViewController](uikit/uiactivityviewcontroller.md)
- [UIAlertController](uikit/uialertcontroller.md)
- [UIAlertView](uikit/uialertview.md)
- [UIBackgroundExtensionView](uikit/uibackgroundextensionview.md)
- [UIButton](uikit/uibutton.md)
- [UICalendarView](uikit/uicalendarview.md)
- [UICloudSharingController](uikit/uicloudsharingcontroller.md)
- [UICollectionReusableView](uikit/uicollectionreusableview.md)
- [UICollectionView](uikit/uicollectionview.md)
- [UICollectionViewCell](uikit/uicollectionviewcell.md)
- [UICollectionViewController](uikit/uicollectionviewcontroller.md)
- [UICollectionViewListCell](uikit/uicollectionviewlistcell.md)
- [UIColorPickerViewController](uikit/uicolorpickerviewcontroller.md)
- [UIColorWell](uikit/uicolorwell.md)
- [UIContentUnavailableView](uikit/uicontentunavailableview.md)
- [UIControl](uikit/uicontrol.md)
- [UIDatePicker](uikit/uidatepicker.md)
- [UIDocumentBrowserViewController](uikit/uidocumentbrowserviewcontroller.md)
- [UIDocumentMenuViewController](uikit/uidocumentmenuviewcontroller.md)
- [UIDocumentPickerExtensionViewController](uikit/uidocumentpickerextensionviewcontroller.md)
- [UIDocumentPickerViewController](uikit/uidocumentpickerviewcontroller.md)
- [UIDocumentViewController](uikit/uidocumentviewcontroller.md)
- [UIEventAttributionView](uikit/uieventattributionview.md)
- [UIFontPickerViewController](uikit/uifontpickerviewcontroller.md)
- [UIImagePickerController](uikit/uiimagepickercontroller.md)
- [UIImageView](uikit/uiimageview.md)
- [UIInputView](uikit/uiinputview.md)
- [UIInputViewController](uikit/uiinputviewcontroller.md)
- [UILabel](uikit/uilabel.md)
- [UIListContentView](uikit/uilistcontentview.md)
- [UINavigationBar](uikit/uinavigationbar.md)
- [UINavigationController](uikit/uinavigationcontroller.md)
- [UIPageControl](uikit/uipagecontrol.md)
- [UIPageViewController](uikit/uipageviewcontroller.md)
- [UIPasteControl](uikit/uipastecontrol.md)
- [UIPickerView](uikit/uipickerview.md)
- [UIPopoverBackgroundView](uikit/uipopoverbackgroundview.md)
- [UIPopoverPresentationController](uikit/uipopoverpresentationcontroller.md)
- [UIPresentationController](uikit/uipresentationcontroller.md)
- [UIProgressView](uikit/uiprogressview.md)
- [UIReferenceLibraryViewController](uikit/uireferencelibraryviewcontroller.md)
- [UIRefreshControl](uikit/uirefreshcontrol.md)
- [UIScrollView](uikit/uiscrollview.md)
- [UISearchBar](uikit/uisearchbar.md)
- [UISearchContainerViewController](uikit/uisearchcontainerviewcontroller.md)
- [UISearchController](uikit/uisearchcontroller.md)
- [UISearchTextField](uikit/uisearchtextfield.md)
- [UISegmentedControl](uikit/uisegmentedcontrol.md)
- [UISheetPresentationController](uikit/uisheetpresentationcontroller.md)
- [UISlider](uikit/uislider.md)
- [UISplitViewController](uikit/uisplitviewcontroller.md)
- [UIStackView](uikit/uistackview.md)
- [UIStandardTextCursorView](uikit/uistandardtextcursorview.md)
- [UIStepper](uikit/uistepper.md)
- [UISwitch](uikit/uiswitch.md)
- [UITabBar](uikit/uitabbar.md)
- [UITabBarController](uikit/uitabbarcontroller.md)
- [UITableView](uikit/uitableview.md)
- [UITableViewCell](uikit/uitableviewcell.md)
- [UITableViewController](uikit/uitableviewcontroller.md)
- [UITableViewHeaderFooterView](uikit/uitableviewheaderfooterview.md)
- [UITextField](uikit/uitextfield.md)
- [UITextFormattingViewController](uikit/uitextformattingviewcontroller.md)
- [UITextView](uikit/uitextview.md)
- [UIToolbar](uikit/uitoolbar.md)
- [UIVideoEditorController](uikit/uivideoeditorcontroller.md)
- [UIView](uikit/uiview.md)
- [UIViewController](uikit/uiviewcontroller.md)
- [UIVisualEffectView](uikit/uivisualeffectview.md)
- [UIWebView](uikit/uiwebview.md)
- [UIWindow](uikit/uiwindow.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)
- [UIFocusSystem](uikit/uifocussystem.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)
