macOS+iOS, Swift

(Swift) Tap and Hold 구현하기

tap and hold 구현하기 UIButton은 기본적으로 단일 탭에 대해서 액션 메시지를 발신하게끔 디자인되어 있고, 따라서 별도의 UITapGestureRecognizer가 없어도 동작할 수 있다. 대신에 누르고 있는 동작에 대해서는 별도의 처리가 필요하다.

macOS+iOS, Swift

StreamReader 작성하기

스트림 리더 특정한 텍스트 파일을 읽어들여서 한 줄씩 처리하는 방법에서 가장 간단한 구현은 String의 init(contentOfURL:encoding:)을 이용하여 텍스트 파일의 내용 전체를 하나의 문자열로 만든 다음에, 개행 문자를 이용해서 자르는 것이다. let path = “~/Downloads/sample.txt” let url = URL(fileURLWithPath: (NSString(string:path).expandingTildeInPath) if let s = String(contentsOf: url) { for line in s.components(separatedBy:.newlines) { print(line) } }

macOS+iOS, Swift

(Swift | Cocoa ) 포커스링

포커스 링 macOS 관련 책들이 워낙 오래된 것들이 많다보니, 대부분의 책에서는 다음과 같이 draw: 메소드 내에서 포커스링을 그리는 것으로 포커스링을 흉내낸다. override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) self.bgColor.set() NSBezierPath.fill(bounds) if let fr = window?.firstResponder, fr === self { NSColor.keyboardFocusIndicatorColor.set() NSBezierPath.setDefaultLineWidth(4.0) NSBezierPath.strokeRect(bounds) } } 그리고 제 1 응답자가 되었을 때 포커스링을 그리기 위해서는 뷰가 응답자 …