2016-12-06 6 views
-2

DeleteBackward()는 한 문자 만 삭제합니다. 삭제를 계속할 수있는 방법이 있습니까?DeleteBackward() Swift 3

emojiKeyboard를 사용하고 있는데 이모티콘이 삭제되었습니다. 나는 이모티콘되는 삭제 이모티콘을 감지하고 나는

if emoticon.isDelete{ 

     deleteBackward() 
     return 
    } 

업데이트 전화 :

스티븐의 솔루션 내 UITextView에 버튼을 작동하지만. 시도하고 이유를 찾으십시오. ViewWillAppear 및 ViewDidLoad에서 addGestureRecognizer를 사용하려고 시도했습니다.

+1

언제 삭제를 중단 하시겠습니까? 예를 들어 누군가가 이모티콘 삭제를 누르면 전체 텍스트가 삭제되거나 다른 키 또는 이모티콘을 누를 때 삭제가 중지되어야합니까? – nitinsh99

+0

일반 키보드 삭제 버튼을 복제하고 싶습니다. 따라서 사용자가 해제 할 때 중지해야합니다. – Marin

답변

1

테스트를 시작했지만 트릭을해야합니다.

fileprivate var timer = Timer() 
fileprivate var textField = UITextField() //change to your field 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let longPress = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:))) 
    textField.addGestureRecognizer(longPress) 
} 


func longPress(_ guesture: UILongPressGestureRecognizer) { 
    if guesture.state == UIGestureRecognizerState.began { 
     longPressBegun(guesture) 
    } else if guesture.state == UIGestureRecognizerState.changed { 
     //longPressStateChanged(guesture) 
    } else if guesture.state == UIGestureRecognizerState.ended { 
     longPressEnded() 
    } else if guesture.state == UIGestureRecognizerState.cancelled { 
     longPressCancelled() 
    } 
} 

func longPressBegun(_ guesture: UILongPressGestureRecognizer) { 
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(repeatAction), userInfo: nil, repeats: true) 
} 

func longPressEnded() { 
    timer.invalidate() 
} 

func longPressCancelled() { 
    timer.invalidate() 
} 

func repeatAction() { 
    deleteBackward() 
} 
+1

Steven에게 감사드립니다. 왠지 이유로 UITextView에서 트리거되지 않습니다. – Marin