https://developer.apple.com/documentation/uikit/mac_catalyst/displaying_a_preferences_window
"Provide a Preferences window in your Mac app built with Mac Catalyst so users can manage app preferences defined in a Settings bundle."
맥 Catalyst로 빌드된 맥 앱에 preference 윈도으를 제공함으로써 사용자가 세팅 번들에 정의된 앱 preference를 관리할 수 있도록 합니다.
맥 앱은 메뉴바에 있는 앱 메뉴 아래 표준 prerence 메뉴 아이템을 통해서 접근 가능한 preference 윈도우를 사용해 앱의 특정 preference를 표시합니다.
Settings.bundile 파일을 포함시킨 맥 Cataylyst로 빌드된 앱은 preference 메뉴 아이템과 preference 윈도우를 가져옵니다. 사용자가 preference 메뉴 아이템을 선택하면, 시스템은 설정 번들에서 제공한 옵션에 기반해 preference 윈도우를 표시합니다. 설정 번들에 대한 더 많은 내용은 Implementing an iOS Settings Bundle을 보시기 바랍니다.
맥 엡에 preference 윈도우를 포함시키려면, 커맨드 N을 누르고 iOS 아래에 있는 리소스 섹션으로부터 설정 번들 템플릿을 선택해 Xcode 프로젝트에 Settings.bundle 파일을 추가해야 합니다. 이후 프로젝트에 파일을 저장하기 위해 Next를 클릭합니다.
설정 번들은 preference를 계층구조로 조직화할 수 있도록 하나 혹은 하나 이상의 창을 포함할 수 있습니다(Hierarchical Preferences를 살펴보시기 바랍니다. iOS에서 설정 앱은 preference 행에 따라 자식 창을 표시합니다. 사용자가 행을 탭하면, 앱은 자식 창의 속성 리스트 파일에 정의된 preference를 나타내는 새 뷰를 표시합니다.
Hierarchical Preferences
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html#//apple_ref/doc/uid/10000059i-CH6-SW4
macOS에서 preference 윈도우는 윈도우 툴바에 대한 탭으로써 자식 창을 표시합니다. 사용자가 탭을 클릭하면 자식 창의 속성 리스트 파일에서 제공된 preference를 볼 수 있습니다.
자식 창에 대한 탭은 창의 제목과 시스템이 제공한 아이콘을 표시합니다. 아이콘을 커스터마이징하려면 자식 창의 속성 리스트 파일에 아래 키를 추가하시기 바랍니다.
Icon
선택사항입니다. preference 윈도우에서 툴바 탭 아이콘으로 표시하기 위한 이미지 파일의 이름을 갖는 스트링입니다.
자식 창의 속성 리스트 파일을 포함하는 설정 번들에 이미지 파일이 포함되어 있어야 합니다.
설정 번들의 또다른 요소는 토글 스위치 요소입니다. 이 요소는 사용자가 토글할 수 있는 온/오프 스위치를 표시합니다. 맥 앱은 사용자가 토글 스위치 요소에 있는 키를 포함하여 스위치를 토글할 때 확인 메시지를 표시할 수 있도록 합니다. 해당 키는 아래와 같습니다.
TrueConfirmationPrompt
선택사항입니다. 사용자가 스위치를 킬 때 사용제에게 보여주는 표시를 정의하는 딕셔너리입니다.
FalseConfirmationPrompt
선택사항입니다. 사용자가 스위치를 끌 때 사용제에게 보여주는 표시를 정의하는 딕셔너리입니다.
각각의 딕셔너리는 표시의 컨텐츠를 정의하는 아래 키들을 포함합니다.
Type
필수사항입니다. PSConfirmationPrompt
로 설정되어야 합니다.
Title
필수사항입니다. 표시의 제목을 나타내는 스트링입니다. 제목은 특정 기기에서 나타나지 않을 수 있습니다.
Prompt
필수사항입니다. 표시가 나타내는 텍스트 내용입니다.
ConfirmText
선택사항입니다. 표시의 확인 버튼에 표시되는 텍스트입니다. 토글 스위치 값은 사용자가 이 버튼을 클릭할 때 바뀝니다.
DenyText
선택사항입니다. 표시의 취소 버튼에 표시되는 텍스트입니다. 토글 스위치는 사용자가 이 버튼을 클릭할 때 바뀌지 않습니다.
특정 iOS 앱은 footer 텍스트를 갖는 그룹 아이템을 사용해서 토글 스위치 아래에 하위제목에 대한 설명 텍스트를 표시합니다. preference 윈도우가 이 접근방식을 지원하면, 맥에 나타나는 모습은 바람직하지 않습니다. 대신 하위제목을 보여주려면 토글 스위치 요소에서 아래 보이는 키를 포함시키기 바랍니다.
Description
선택사항입니다. 토글 스위치 아래에 표시하는 더 긴 설명 스트링입니다.