在iOS虚拟键盘的快捷栏中,有一个撤消按钮可撤消编辑。有没有办法将任意按钮与该功能相关联?
答案 0 :(得分: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()
}
答案 1 :(得分: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)