iOS

기본 앱 설정에 Custom Section 추가하기 (2) - Child Pane

Zedd0202 2022. 3. 12. 00:37
반응형

안녕하세요 :) Zedd입니다.

기본 앱 설정에 Custom Section 추가하기 (1) 에서 Settings Bundle에 들어가는 control type들을 살펴봤는데요. 

  • Group
  • Text field 
  • Title
  • Toggle switch
  • Slider
  • Multivalue
  • Radio Group
  • Child Pane 

Child Pane빼고 다 봤었어요.

Child Pane은 어떤거냐면..

이름에서 볼 수 있다시피 새로운 (Child) 페이지를 만들 수 있는 type입니다. 

 

# Child Pane

Child Pane은 Preference Items에서 +를 눌렀을때는 안보이는데, 

아무거나 누르고 Type 변경 Drop Down 버튼을 누르면 

이렇게 나오게 됩니다.

 

일단 소스코드..

이렇게 추가해주면 되는데요. 

아직 File key에 제대로 된 파일 이름을 넣어주지 않았지만, 실행해보면

이렇게 새로운 하위 화면이 뜨게 됩니다.

 

# File 지정하기

글에서 Settings Bundle의 컨텐츠들 설명했던 부분 기억나시나요? (공식문서 링크)

여기서 Additional .plist files가 있는데, 이게 왜 있냐면..

Child pane을 사용하는 경우, 요 새로운 pane에 대한 plist를 만들어줘야기 때문입니다.

그래서

File key에는 plist이름이 들어가야 합니다. (Key이름은 File이 맞는데, 보여질때는 Filename으로 보여지네용)

주의할 점은, Zedd.plist가 있으면 "Zedd.plist"를 넣는게 아니라, "Zedd"로 넣어야 합니다.

 

# plist 만들기

귀찮으니까 Root를 복사해주겠습니다. 

1. Root.plist를 소스코드로 전환하여 복사

 

2. Settings Bundle > New File하여 새로운 파일 생성

 

3. 파일이름을 Zedd.plist로 변경 

왜 이렇게 힘들게 plist를 만들고 있는지 저도 잘 모르겠는데요.

번들안에서는 New File을 누르면 

이런게 안뜨고 그냥 바로 empty 파일이 만들어져버림;;

Bundle말고 앱 코드 있는곳에서 property list만들고 옮겨도 되지만...Root를 복사하는게 맘편하다는게 제 생각 ㅎ

 

4.  StringsTable key의 값을 변경. 

Root의 File은 "파일의 이름"을 보는거기 때문에 plist 내부의 값들은 따로 신경쓰지 않아도 됩니다. 

 

5. Root.plist로 가서 File을 "Zedd"로 지정

6. 빌드 후 설정 가보기

으음 굳.. 당연히 새로운 페이지에서는 Zedd.plist에 있는 Item들이 나오겠죠? 

아무튼 이런식으로 자기 입맛대로 사용하면 된다는거~~~

 

# Child Pane 사용 예제

대부분 앱 내에 설정을 두는 식으로 하는지,

제가 설치한 앱들중에서는 기본 앱 설정에 설정을 둔게 많이 없더라구요. 

기본 앱 설정에 Custom Section 추가하기 (1) 에서도 언급했듯이,

변경이 거의 필요하지 않은 것들만 (기본) 설정 앱에 넣는것이 좋다~~고 했는데요. 

Apple Developer 앱 처럼

사용권 / 오픈소스 라이선스등을 넣기 딱 좋을 것 같더라구요!

Apple Developer 앱 말고도 기본 앱 설정에 라이선스를 넣어둔 곳이..찾아보니 

제가 설치한 앱들 중에선 리디북스와 아자르가!

 

리디북스는 눌러도 아무것도 안나오던데....👀....

아자르의 오픈소스 소프트웨어 라이센스를 눌러보면,

이런식으로 나오게 됩니다.  

(소소한 정보 : 국립국어원의 표기법에 따르면 라이선스가 맞는 표기입니다. 참고)

 

오른쪽 그림처럼 만들고 싶다면, Group의 Title이나 FooterText로 넣으면 됩니다.

MIT License

Copyright (c) 2022 Zedd

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

대충 이런 텍스트를 복사해주고

이렇게 넣어주면 

왼쪽 - Title로 넣은거 / 오른쪽 - FooterText로 넣은거

살짝 다르죠!?

아무튼 이런식으로 사용하면 됩니다~~~

 

# 라이브러리

LicensePlist 라고 오픈소스 plist를 자동으로 만들어주는 라이브러리도 있는데요. 

아자르는 이걸 사용한게 아닐까! 🤔

반응형