[번역] UIWindow (애플 공식 문서)

삭제된 Velog·2024년 9월 17일

UIKit

목록 보기
13/21
post-thumbnail

본 글은 UIWindow (애플 공식 문서)를 한국어로 번역하여 옮긴 글입니다.

앱의 사용자 인터페이스의 배경이자 뷰에 이벤트를 전달하는 객체

iOS 2.0+ | iPadOS 2.0+ | Mac Catalyst 13.1+ | tvOS 9.0+ | visionOS 1.0+

@MainActor
class UIWindow : UIView

Overview

윈도우는 뷰 컨트롤러와 함께 이벤트를 처리하고 앱의 동작에 필수적인 여러 가지 다른 작업을 수행합니다. UIKit은 대부분 윈도우와 관련된 상호작용을 처리하며, 많은 앱 동작 구현을 필요로 하면 다른 객체와 함께 작업합니다.

아래 작업을 필요로 할 때만 윈도우를 사용하세요.

  • 앱의 컨텐츠를 보여주기 위해 주된 윈도우를 제공하세요.

  • (필요하면) 추가 컨텐츠를 보여주기 위해 추가 윈도우를 생성하세요.

일반적으로, Xcode는 앱의 주 윈도우를 제공합니다. 새로운 iOS 프로젝트는 앱의 뷰를 정의하고자 스토리보드를 사용합니다. 스토리보드는 Xcode 템플릿이 자동으로 제공하는 앱 델리게이트 객체에서 window 프로퍼티의 존재를 요구합니다. 앱이 스토리보드를 사용하지 않는다면, 이 윈도우를 직접 생성해야 합니다.

대부분 앱은 기기의 주된 스크린에 앱의 컨텐츠를 표시하는 오직 하나의 윈도우만 필요로 합니다. 기기의 주된 스크린에 추가 윈도우를 생성할 수 있다 하더라도, 여분의 윈도우는 Presenting content on a connected display에서 설명한대로 외부 스크린에 컨텐츠를 보여주기 위해 사용됩니다.

몇 가지 다른 작업을 위해 UIWindow 객체를 사용하세요.

  • 다른 윈도우에 비해 해당 윈도우의 가시성에 영향을 주는 z-축 레벨을 설정하세요.

  • 윈도우를 보이게 하고 해당 윈도우를 키보드 이벤트의 대상(target)으로 만드세요.

  • 좌표 값을 윈도우의 좌표 시스템으로 변환하거나, 그 반대로 변환하세요.

  • 윈도우의 최상위 뷰 컨트롤러를 바꾸세요.

  • 윈도우가 표시되는 스크린을 바꾸세요.

윈도우는 그 자체로 어느 시각적 외형을 가지지 않습니다. 그 대신에, 윈도우는 윈도우의 최상위 뷰 컨트롤러에 의해 관리되는 하나 이상의 뷰를 처리합니다. 스토리보드에서 최상위 뷰 컨트롤러를 구성하고, 인터페이스에 적합한 모든 뷰를 추가합니다.

드물게 UIWindow를 서브 클래싱할 필요가 있습니다. 윈도우에서 구현하는 동작의 유형은 높은 수준의 뷰 컨트롤러에서 더 쉽게 구현될 수 있습니다. 서브클래싱을 고려하는 몇 안되는 경우 중 하나는 becomeKey()resignKey() 메서드를 오버라이드하여 윈도우의 키(key) 상태가 변할 때 수행되는 커스텀 동작을 구현하고자 할 때입니다. 특정 스크린에 윈도우를 어떻게 표시하는지에 자세한 정보는 UIScreen을 참조하세요.

Understand keyboard interactions

터치 이벤트는 발생한 윈도우에 전달되는 반면에, 관련된 좌표 값이 없는 이벤트는 키 윈도우에 전달됩니다. 오직 한번에 하나의 윈도우만 키 윈도우가 될 수 있으며, 해당 윈도우의 상태를 확인하려면 윈도우의 isKeyWindow 프로퍼티를 사용하세요. 대부분의 경우, 앱의 주된 윈도우가 키 윈도우가 되지만, UIKit은 필요하면 다른 윈도우를 키 윈도우로 지정할 수 있습니다.

어느 윈도우가 키 윈도우인지 알아야 할 때, didBecomeKeyNotificationdidResignKeyNotification 알림을 관찰(observe)하세요. 시스템은 앱의 키 원도우 변화에 반응하여 메인 액터(main actor)에서 해당 알림을 전송합니다. 윈도우를 강제로 키 윈도우로 만들거나, 윈도우가 키 상태를 포기하도록 강제하려면, 해당 클래스의 적절한 메서드를 호출하세요.

참고 자료

profile
rlarjsdn3.github.io

0개의 댓글