iOS 응용 (swift)

[iOS - swift] UIPasteBoard.general.changeCount (복사했는지 확인 방법)

jake-kim 2024. 11. 12. 01:45

changeCount 개념

  • 아이폰 사용자가 복사, 클립보드 제거 등의 UIPasteBoard 관련 수정 작업을 하면 애플에서 수정 기록을 기록하는데, 이 기록하는 변수가 changeCount

https://developer.apple.com/documentation/uikit/uipasteboard/1622103-changecount

@available(iOS 3.0, *)
open class UIPasteboard : NSObject, @unchecked Sendable {
    open class var general: UIPasteboard { get }
    open var changeCount: Int { get } // <-
    ...
}
  • 코드에서는 아래처럼 접근 가능
UIPasteBoard.general.changeCount
  • 주의할 점)
    • 공식 문서에는 0으로 초기화 되는 시점 유저가 기기를 재시작하면 된다고 하는데, 재시작해도 0으로 초기화되지 않음

잘못나와 있는 애플 문서

ex) UIPasteboard.general.changeCount 재시작 하기 전과 재시작 후에 출력해보기

class ViewController: UIViewController {
    private let label = {
        let l = UILabel()
        l.text = "changeCount: \(UIPasteboard.general.changeCount)" // <-
        l.textColor = .black
        l.translatesAutoresizingMaskIntoConstraints = false
        return l
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.addSubview(label)
        NSLayoutConstraint.activate([
            label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            label.centerYAnchor.constraint(equalTo: view.centerYAnchor),
        ])
    }
}

  • 재시작을 위해 Restart 클릭

  • 다시 실행해도 0으로 초기화 되지 않음