목록전체 글 (199)
일모도원(日暮途遠) 개발자
다른 사람에게 내 앱 공유하기 기능을 추가할려고 앱 id 찾기를 하는데, 조금 헤매서 적어둔다. 앱스토어커넥트로 가서 앱을 선택후 General밑의 App Information을 선택후 오른쪽에서 General Information 밑에 보면 Apple ID라고 있다. 이게 App Id다. 브라우저 주소창에도 App Id가 있으므로 굳이 App Information을 안열어도 된다.
소스코드를 블로그글에 넣으면 스크롤바가 없어서 아래 처럼 너무 길게 나올때가 있다. 이럴때는 CSS에 아래를 추가하자. (max-height는 각자에 맞게 적당하게 추가하자) /* 소스코드블럭에 스크롤바 추가하기 추가 */ .hljs {max-widht:850px; max-height:300px; overflow:scroll !important;} 먼저 관리자페이지로 가서 스킨 편집을 선택하자. 스킨편집에서 HTML편집을 선택한다. CSS를 선택하고 적당한곳에 위 코드를 삽입하고 우측 적용 버튼을 누르자. 그러면 아래처럼 소스코드 블럭의 높이가 설정한 만큼 작아지며, 소스코드위로 마우스를 가져다가 스크롤을 하면 스크롤바가 표시된다. override func awakeFromNib() { super.awa..
파일명이 "movie 9.mp4", "movie 10.mp4", "movie 11.mp4" 처럼 있다. 오름차순으로 정렬할려고 아래처럼 사용하니 files.sort(by: { $0.compare($1) == .orderedAscending } ) 결과가 "movie 10.mp4", ""movie 11.mp4", "movie 9.mp4"처럼 나왔다. 이는 "movie 1"과 "movie 9"가 비교되어서 그렇다. 이럴때는 compare대신 localizedStandardCompare를 쓰면 원하는 방식으로 정렬이 된다. files.sort(by: { $0.localizedStandardCompare($1) == .orderedAscending } ) "movie 9.mp4", "movie 10.mp4", ..
세로로 선택하여 일괄변경하기 아래처럼 var가 여러줄에 있을때 이를 전부 let으로 바꾸고 싶다고 하면 Command + Option키를 누른상태에서 마우스로 세로로 드래그를 하면 아래처럼 선택을 할수 있다. 선택된 상태에서 타이핑해서 문자를 변경한후 ESC키를 누르면 된다. "
멀티 플레이어 동영상 앱을 제출했는데, 무료버전은 통과 되었고, 유료버전은 리젝이 되었다. 둘다 백그라운드 모드에서 Audio가 설정되어있는데, 역시 리뷰는 복불복(福不福)이다. (멀티 플레이어 앱은 백그라운드모드에서는 비디오 플레이를 정지 하기 때문에 위 권한은 필요가 없다) 애플에서 준 에러메시지 Your app may use Audio in background mode. How can we locate this feature within your app? If yes, please provide us a demo video which demonstrates the feature. plist파일을 보면 audio가 있다. Signing & Capbilities에서 보면 Audio 및 AirPlay와 ..
가끔 ViewController랑 xib파일이 어디서 연결이 되어있는지를 까먹을때가 있다. 예를 들어 아래처럼 파일이 있을때를 HiddenVideoPasswordViewController.xib파일을 열고 "File's Owner"를 선택하고 "Identity Inspector"을 선택하고 Custon Class가 보인다. 여기서 xib파일과 연결될 ViewController를 선택하면 된다. 아주 오래전에는 XCode와 Interface Builder가 분리되어 있었다. 그때는 xib파일 대신 nib파일을 사용하였고 "닙파일"이라고 불렀다. 왠지 모르겠지만 xib파일이 도입되고도 그냥 ‘닙 파일’ 이라고 계속 불렀다. (한국에서는 "xib"을 그대로 읽으면 욕설같음^^;) XIB : XML Interf..
만들고 있는 맥카탈리스트용 동영상 플레이어에 단축키를 배정해놓았다. 그런데 웹뷰를 동영상뷰 위에 띄우니까 타이핑이 되지 않고, 단축키가 먹는 버그가 있었다. 해결책은 단축키가 있는 메뉴를 웹뷰가 뜰때는 없애주는거다. 메뉴가 있는 뷰(동영상 재생뷰)가 닫힐때는 메뉴를 diable해주고 (즉 팝업이 뜰때는 메뉴가 동작을 안한다) override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) if let app = UIApplication.shared.delegate as? AppDelegate { app.disableMenu() } } 메뉴가 있는 뷰(동영상 재생뷰)가 열리면 menu를 enable해준다. overri..
맥카탈리스트로 앱을 개발하면서 MacBundle.bundle을 추가했는데 iOS버전으로 컴파일하니 아래와 같이 에러가 나왔다. embedded item 'MacBundle.bundle' is building for macOS. You may need to configure 'MacBundle.bundle' to build for iOS. 아래처럼 MacBundle.bundle을 추가해둔 상태이다. Build Phases에서 보면 Dependencies에 MacBunlde이 있는데, iOS도 체크해둔 상태이다. 그래서 아래처럼 Mac Catalyst에만 사용하게 체크하고 iOS용으로 컴파일하니 잘되었다. 근데 iOS에서도 MacBundle을 쓸수 있을려나? 체크가 가능한거 보니 설정을 잘하면 되긴 하나보다.