Swift UIKit: 테이블 뷰에서 UITextView의 컨텐츠에 따라 높이 자동조정

참고 Swift(스위프트): Static cell 모드인 테이블 뷰(UITableView)에서 특정 섹션 감추기 + 특정 행의 크기만 조절   구조 및 제약(Constraints)       1) 텍스트 뷰(UITextView)를 선택한 뒤 Indicator > Scroll View > Scrolling Enabled 해제 또는 코드에서 직접 설정합니다. textView.isScrollEnabled = false   2) 해당 인덱스패스 (IndexPath)의 heightForRowAt을 UITableView.automaticDimension으로 설정 더보기…

Swift UIKit: .translatesAutoresizingMaskIntoConstraints 란 무엇인가?

translatesAutoresizingMaskIntoConstraints UIKit에서 아직도 무슨 의미인지 잘 모르겠는 (View).translatesAutoresizingMaskIntoConstraints에 대해 알아보겠습니다.   한국어 직역 translatesAutoresizingMaskIntoConstraints를 한국어로 직역하면 다음과 같습니다: “Autoresizing 마스크를 제약 조건으로 변환한다” 구체적으로 단어별로 나누어보면: translates: 변환한다, 번역한다 AutoresizingMask: 자동 크기 조절 마스크 (UIKit의 레이아웃 시스템에서 뷰의 크기와 위치를 자동 조절하는 속성) into Constraints: 제약 조건으로 따라서 전체 의미는: 더보기…

Xcode에서 Navigator & Inspector를 숨기거나 보이게 하는 방법, 동시에 토글하는 방법

Xcode에서 Navigator & Inspector를 숨기거나 보이게 하는 방법, 동시에 토글하는 방법 소개 Xcode를 사용하다 보면 좁은 모니터 환경에서 Navigator (왼쪽 패널)와 Inspector (오른쪽 패널)를 상황에 따라 동시에 숨기거나 나타내고 싶을 때가 많습니다. 하지만 기본 단축키만으로는 이 둘을 동시에 제어할 수 있는 방법은 제공되지 않습니다.   이 글에서는 각각의 단축키와, 이를 해결하기 더보기…

Git/GitHub: .gitignore 적용 안될때 / 어멘드(amend)하는 방법 / 오픈소스 라이브러리에 PR(풀 리퀘스트)하는 방법

.gitignore 적용 안될때  .gitignore가 제대로 적용되지 않는 경우, 주로 이미 Git에 추적되고 있는 파일이거나 .gitignore 파일이 잘못 설정된 경우입니다. 이를 해결하기 위한 단계별 점검 및 해결 방법은 아래와 같습니다.   이미 추적되고 있는 파일인지 확인 .gitignore는 Git이 추적하지 않는 파일에만 적용됩니다. 이미 추적 중인 파일은 .gitignore에 추가해도 무시되지 않습니다.   더보기…

Xcode: CocoaPods 프로젝트에서 Build Phase의 Run Script를 이용해 패치 넘버 증가

관련 글 Run Script Swift Package Manager(SPM)와 CocoaPods를 동시에 대응하는 라이브러리 만들기 (1)   버전 넘버 구성 예) Semantic Versioning 라는 방법에 따르면 1.0.0 이라는 버전이 있을 때 앞에서부터 순서대로 메이저 버전 마이너 버전 패치 버전 라고 합니다. Semantic Versioning(SemVer)은 소프트웨어 버전을 체계적으로 관리하기 위한 규칙으로, 버전 번호를 주버전.부버전.패치버전 형식으로 구성합니다. 이 더보기…

macOS 앱 포트폴리오: 플레인 텍스트를 작성/관리할 수 있는 포스트잇 앱 (애플 앱스토어 출시 💻)

UltimateScale StickyPlainPad는 플레인 텍스트(서식 없는 텍스트)를 포스트잇처럼 맥 여기저기에 붙였다 뗐다 사용할 수 있는 메모 앱입니다.   앱스토어 링크 StickyPlainPad 한국 앱 스토어 링크 (모든 국가 출시, 유료)   깃허브 링크 https://github.com/ayaysir/macOS-StickyPlainPad   특징 및 사용 기술 애플 앱스토어의 검수에 통과하였습니다. SwiftUI와 AppKit이 적재적소에 사용되었습니다. 현재 macOS 환경에서 SwiftUI 단독으로는 윈도우 더보기…

Swift UIKit: 최상위 Top View Controller (현재 화면의 VC) 찾기 / 예제: SwiftUI에서 빠른 Alert 띄우기

1. UIApplication의 KeyWindow 대체 import UIKit extension UIApplication { var keyWindow: UIWindow? { connectedScenes .compactMap { $0 as? UIWindowScene } .flatMap { $0.windows } .first { $0.isKeyWindow } } } ‘keyWindow’ was deprecated in iOS 13.0: Should not be used for applications that support multiple scenes as it returns a 더보기…

SwiftUI: WKWebView의 UIRepresentableView에서 웹 페이지의 Alert, Confirm, Prompt 표시

관련 글 SwiftUI: 웹 뷰(WKWebView) 추가하기 및 자바스크립트 실행 (Representable 사용)   소개 UIDelegate에서 구현해야되는 자바스크립트 경고창 (Alert, Confirm, Prompt) 표시는 어떻게 해야 할까요? Coordinator 클래스를 만들고 WKUIDelegate를 준수(conform) 부모 뷰 (WebViewRP)를 참조하는 변수를 정의하고 이 변수를 통해 코디네이터와 통신 코디네이터 클래스 안에 자바스크립트 경고창 표시와 관련된 함수를 오버라이딩 및 더보기…

Swift iOS 앱 프로젝트: 버튼을 누르면 iOS에 내장된 사전(dictionary) 열기

소개 iOS에서 UIKit을 사용하여 내장된 사전을 여는 방법은 UIReferenceLibraryViewController를 활용하는 것입니다. 이 클래스는 지정된 단어에 대한 사전 정의를 표시하는 뷰 컨트롤러를 제공합니다. UIKit 구현 방법 아래는 특정 단어에 대해 iOS 내장 사전을 여는 예제입니다. 1. 기본 구현 import UIKit func openDictionary(for word: String, from viewController: UIViewController) { if UIReferenceLibraryViewController.dictionaryHasDefinition(forTerm: word) 더보기…

새로운 음악 학습 앱 출시: Music Interval Quiz Master로 골치아픈 음정 정복!

Music Interval Quiz Master 여기를 눌러 설치 (아이폰, 아이패드, 맥 등 애플 기기 대응) 이 앱은 음악 이론 맨 첫부분에서 배우는 음정(interval)이 어려워 골치인 모든 애플 기기 유저들을 위해 제작되었습니다. 오선 악보와 소리로 끊임없이 출제되는 퀴즈를 Interval Master만의 특징인 직관적이며 편리한 음정 키보드를 이용해 입력하고 채점하세요. 출제 범위 및 방식을 더보기…