투케이2K

197. (Objective-C/objc) [간단 소스] IOS UITextField 에서 클립 보드 복사 (Copy) , 붙여넣기 (Paste) 기능 막기 방법 본문

Objective-C

197. (Objective-C/objc) [간단 소스] IOS UITextField 에서 클립 보드 복사 (Copy) , 붙여넣기 (Paste) 기능 막기 방법

투케이2K 2026. 5. 25. 13:38
728x90
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Objective-c


- 개발 툴 : Xcode


- 기술 구분 : 간단 소스 / UITextField / 클립보드


- 사전) 👉 클립 보드 기능 간략 설명 : 

  >> 클립보드 (Clipboard) 는 운영체제가 제공하는 임시 데이터 저장 공간입니다.

  >> 클립보드 (Clipboard) 는 사용자가 복사(Copy), 잘라내기(Cut), 붙여넣기(Paste)를 수행할 때 데이터를 잠시 보관하는 역할을 합니다.

  >> 클립보드 동작 구조 : 

    복사(Copy)
    ↓
    클립보드에 저장
    ↓
    붙여넣기(Paste)
    ↓
    다른 앱/위치에 데이터 전달  


- 사전) 👉 UITextField 간략 설명 : 

  >> UITextField 는 iOS 에서 사용자가 한 줄 (single-line) 텍스트를 입력할 수 있는 UI 컴포넌트입니다.

    - 안드로이드의 EditText 와 비슷한 역할을 합니다.

  >> UITextField 대표적인 사용 예:

    - 로그인 아이디 입력
    - 비밀번호 입력
    - 검색창
    - 전화번호 입력
    - OTP 인증번호 입력

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

-----------------------------------------------------------
🟦 SecureTextField.h 파일
-----------------------------------------------------------

#import <UIKit/UIKit.h>

@interface SecureTextField : UITextField

@end



-----------------------------------------------------------
🟦 SecureTextField.m 파일
-----------------------------------------------------------

#import "SecureTextField.h"

@implementation SecureTextField

- (BOOL)canPerformAction:(SEL)action
              withSender:(id)sender {

    // 👉 복사 → 차단
    // 👉 붙여넣기 → 차단
    // 👉 잘라내기 → 차단
    // 👉 선택 → 차단
    // 👉 나머지 시스템 동작 → 기본 동작 유지

    if (action == @selector(copy:) ||
        action == @selector(paste:) ||
        action == @selector(cut:) ||
        action == @selector(select:) ||
        action == @selector(selectAll:)) {

        return NO;
    }

    return [super canPerformAction:action
                        withSender:sender];
}

@end



-----------------------------------------------------------
🟦 Objective-C 코드 사용 예시
-----------------------------------------------------------

// 👉 secureTextEntry = YES → ••••• 형태로 마스킹
// 👉 autocorrectionType = No → 자동 수정 비활성화
// 👉 spellCheckingType = No → 맞춤법 검사 비활성화

SecureTextField *passwordField = [[SecureTextField alloc] init];

passwordField.secureTextEntry = YES;
passwordField.placeholder = @"비밀번호";
passwordField.autocorrectionType = UITextAutocorrectionTypeNo;
passwordField.spellCheckingType = UITextSpellCheckingTypeNo;

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ [UITextField 텍스트 필드 shouldChangeCharactersIn 사용해 실시간 입력 글자 확인 실시]

https://kkh0977.tistory.com/2798

https://blog.naver.com/kkh0977/222899091972?trackingCode=blog_bloghome_searchlist


▶️ [UIPasteboard.general.image 사용해 클립보드에 이미지 복사 및 imageView 이미지 뷰에 표시 실시]

https://kkh0977.tistory.com/3217

https://blog.naver.com/kkh0977/222925445890?trackingCode=blog_bloghome_searchlist


▶️ [유틸 파일] setClipboard : 클립 보드 데이터 저장 - UIPasteboard.general.string

https://kkh0977.tistory.com/4858

https://blog.naver.com/kkh0977/223261910867?trackingCode=blog_bloghome_searchlist


▶️ [클립보드 기능 사용해 데이터 복사 (copy) 실시 - UIPasteboard]

https://kkh0977.tistory.com/1508

https://blog.naver.com/kkh0977/222640886969?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments