일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- swiftUI
- 리펙토링
- collectionview
- Refactoring
- Human interface guide
- UICollectionView
- SWIFT
- uitableview
- clean architecture
- tableView
- combine
- Protocol
- Clean Code
- swift documentation
- map
- ios
- RxCocoa
- 리펙터링
- UITextView
- 스위프트
- rxswift
- Observable
- 리팩토링
- MVVM
- 애니메이션
- 클린 코드
- ribs
- uiscrollview
- HIG
- Xcode
- Today
- Total
목록NSRange (5)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Fk5q1/btsA8qXJX3t/i2czH11D95ys1mwZJwRAB1/img.png)
1. UITextField, UITextView에서 알면 좋은 개념 - deleteBackward() 2. UITextField, UITextView에서 알면 좋은 개념 - binding (rx.text, editingChanged, allEditingEvents, shouldChangeCharactersIn, allEditingEvents) 3. UITextField, UITextView에서 알면 좋은 개념 - NSRange, UITextRange (#utf16) 4. UITextField, UITextView에서 알면 좋은 개념 - prefix, suffix, insert NSRange와 UITextRange NSRange 개념 연속된 것 중 한 부분을 나타내는 개념 (위치를 나타내는 location..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DB4W2/btszgkrxS5t/pbA2923NRpoFpWL7bidE51/img.gif)
UITextView의 Cursor 개념 Cursor는 사용자 편의를 위해서 현재 수정되거나 작성될 곳의 위치를 나타내는 역할 애플에서는 이 Cursor도 코드로 이동시키거나 Cursor의 위치를 파악할 수 있도록 NSRange 형태로 제공 NSRange 개념은 이전 포스팅 글 참고 NSRange 요약 개념 NSRange는 _NSRange의 Typealias로 되어 있고 범위의 시작 위치를 location, 길이를 length 프로퍼티로 표현 public struct _NSRange : @unchecked Sendable { public init() public init(location: Int, length: Int) public var location: Int public var length: Int ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bR4YJh/btszf0yrsha/KTJj4IdeHEsTmP2nl3LAo1/img.gif)
NSRange 개념 연속된 것 중 한 부분을 나타내는 개념 NSRange는 _NSRange의 별칭 location과 length 2가지의 stored property만 있으면 연속된 것 중 한 부분을 나타낼 수 있음 location: 연속된 길이 중 한 지점 length: 길이 public struct _NSRange : @unchecked Sendable { public init() public init(location: Int, length: Int) public var location: Int public var length: Int } extension으로 여러가지 프로퍼티와 메서드도 제공 주로 범위를 비교할 때 사용하는 연산자 @available(macOS 10.10, iOS 8.0, watch..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/P8kOA/btred0L28eg/YkdKQwE3jgRpihrauzO4eK/img.gif)
알아야 하는 기본 개념 Range NSRange 문자열 처리 메소드 .trimmingCharacters(In: .whitespacesAndNewlines), .replaceingCharacters(in:with:) Range half-open의 범위를 나타내고 있는 구조체 Range는 lowerBound, upperBound프로퍼티가 존재 "1..
textField: 수정 전의 textField객체 range: 수정 될 범위 정보 range.location: 현재 커서 위치 range.length: 삭제된 문자 갯수 EX) "1234"에서 "12"로 변경 -> range: {2, 2} "현재 커서 위치는 2, 문자열에서 수정된 길이는 2개" "123456"에서 "123"으로 변경 -> range: {3,3} "123"에서 "1234"로 변경 -> range: {3, 0} func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { // 현재: "123" // 입력: "1234" let ..