0
在iOS虛擬鍵盤的快捷欄中有一個撤消按鈕,可以撤銷編輯。有沒有辦法將任意按鈕關聯到該功能?調用什麼函數來撤消在UITextField中所做的更改?
在iOS虛擬鍵盤的快捷欄中有一個撤消按鈕,可以撤銷編輯。有沒有辦法將任意按鈕關聯到該功能?調用什麼函數來撤消在UITextField中所做的更改?
下面是我實現的解決方案(同樣可以重做函數來完成) 。
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)
從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()
}