[swift] PMAlertController 알림창 텍스트 뷰 추가하기

PMAlertController는 Swift로 작성된 사용자 정의 알림창 컨트롤러입니다. 이 라이브러리를 사용하면 쉽게 사용자에게 메시지, 경고 또는 알림을 표시할 수 있습니다.

하지만 PMAlertController는 기본적으로 메시지 레이블만 제공하고 텍스트 입력을 받을 수 있는 기능은 제공하지 않습니다. 이 글에서는 PMAlertController에 텍스트 뷰를 추가하는 방법을 알려드리겠습니다.

1. PMAlertController 라이브러리 설치하기

먼저, PMAlertController 라이브러리를 설치해야 합니다. CocoaPods를 사용하면 간단하게 설치할 수 있습니다. 프로젝트의 Podfile에 다음과 같이 추가합니다.

pod 'PMAlertController'

그리고 터미널에서 다음 명령어를 실행하여 라이브러리를 설치합니다.

$ pod install

2. 텍스트 뷰 추가하기

PMAlertController에 텍스트 뷰를 추가하기 위해 커스텀 AlertView를 만들어야 합니다. 아래의 코드를 참고하여 작성해보세요.

import UIKit
import PMAlertController

class CustomAlertView: PMAlertController {
    
    var textView: UITextView!
    
    override init(title: String, description: String, image: UIImage?, style: PMAlertControllerStyle) {
        super.init(title: title, description: description, image: image, style: style)
        
        addTextView()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    private func addTextView() {
        textView = UITextView(frame: CGRect(x: 0, y: 0, width: 260, height: 100))
        textView.layer.borderWidth = 1.0
        textView.layer.borderColor = UIColor.lightGray.cgColor
        
        contentView.addSubview(textView)
    }
}

위의 코드에서는 PMAlertController를 상속받은 CustomAlertView 클래스를 정의합니다. 커스텀 AlertView 내부에 textView를 추가하고, 적절한 스타일을 설정하는 코드를 작성하였습니다.

3. 커스텀 AlertView 사용하기

이제 커스텀 AlertView를 사용해보겠습니다. 아래의 코드를 참고하여 사용해보세요.

let alertVC = CustomAlertView(title: "Custom Alert", description: "Please enter some text", image: nil, style: .alert)
        
alertVC.addAction(PMAlertAction(title: "OK", style: .default, action: { () -> Void in
    // 사용자가 입력한 텍스트를 가져온다.
    let text = alertVC.textView.text
    // 입력한 텍스트를 처리하는 코드를 작성한다.
    // ...
}))

present(alertVC, animated: true, completion: nil)

위의 코드에서는 CustomAlertView를 생성하고, 사용자가 텍스트를 입력하고 OK 버튼을 누를 때 호출되는 클로저에서 입력한 텍스트를 처리하는 코드를 작성하면 됩니다.

이제 PMAlertController에 텍스트 뷰를 추가하여 사용자로부터 입력을 받을 수 있게 되었습니다. 이 방법을 활용하여 알림창에 텍스트 입력 기능을 추가해보세요.

참고 문서