2016-05-30 53 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() 
    }