2016-05-30 37 views

回答

1

下面是我實現的解決方案(同樣可以重做函數來完成) 。

import UIKit 

class ViewController: UIViewController, UITextViewDelegate { 

@IBAction func undoButtonPressed(sender: AnyObject) { 
     mainTextField.undoManager?.undo() 
     enableDisableUndoButton() 
    } 

    func enableDisableUndoButton() { // to disable or enable the button when needed 
     if mainTextField.undoManager?.canUndo == true { 
      undoButton.enabled = true 
     } else { 
      undoButton.enabled = false 
     } 
    } 

    func textViewDidChange(mainTextField: UITextView) { // monitors when user makes changes in the text field 
     enableDisableUndoRedoButtons() 
    } 

} 

要獲得的UndoManager採取的通過代碼的領域所取得的文字修改筆記,我用這個:

mainTextField.replaceRange((theRange), withText: newStr) 
1

從iOS 8開始,搖動設備應觸發撤消操作。您的視圖控制器應該是第一個響應者,因此它可以響應撤消觸發器。您可以通過成爲第一個響應者之一,鑑於即將出現,然後辭職它時,它即將消失

override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     becomeFirstResponder() 
    } 
    override func viewWillDisappear(animated: Bool) { 
     super.viewWillDisappear(animated) 
     resignFirstResponder() 
    } 
    override func canBecomeFirstResponder() -> Bool { 
     return true 
    } 
    override func viewDidLoad() { 
     super.viewDidLoad() 
    }