簡體   English   中英

iOS 9 UIInputViewController 關閉鍵盤

[英]iOS 9 UIInputViewController dismissKeyboard

我有一個自定義UIInputViewController ,我們稱之為MyInputViewController 我將文本字段的輸入視圖設置為我的輸入控制器的單例實例的視圖。 插入、刪除和移動光標工作正常,但是當我在輸入視圖控制器中調用self.dismissKeyboard()self.dismissKeyboard()調用方法,print() 寫入控制台),它不執行任何操作。

可能有什么問題? 幾天前它開始工作了,但是我不記得可能是什么錯誤。

class MyInputController: UIInputViewController {

// SINGLETON:
static let keyboard: MyInputController = MyInputController()

class func setSharedKeyboardForTextField(textField: UITextField) {
    textField.inputAccessoryView = nil
    textField.inputView = keyboard.view
}

// MARK: initializers
private init() {
    super.init(nibName: nil, bundle: nil)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override func loadView() {
    super.loadView()
    self.view.translatesAutoresizingMaskIntoConstraints = false=
}

override func viewDidLoad() {
    //set up buttons
}

// MARK: helper functions
func inputText() -> String {
    return (self.textDocumentProxy.documentContextBeforeInput ?? "") + (self.textDocumentProxy.documentContextAfterInput ?? "")
}

// MARK: animations
private func grow(sender: MathematicalKeyboardKey) {
    sender.superview?.bringSubviewToFront(sender)
    UIView.animateWithDuration(0.1) { () -> Void in
        sender.transform = scaleTransform
    }
}

private func shrink(sender: MathematicalKeyboardKey) {
    sender.superview?.sendSubviewToBack(sender)
    UIView.animateWithDuration(0.1) { () -> Void in
        sender.transform = CGAffineTransformIdentity
    }
}

// MARK: actions
func keyTouched(sender: MathematicalKeyboardKey) {
    // works
    grow(sender)
}

func keyExit(sender: MathematicalKeyboardKey) {
    // works
    shrink(sender)
}

func resign(sender: MathematicalKeyboardKey) {
    // called but doesn't work
    dismissKeyboard()
    shrink(sender)
}

func keyPressed(sender: MathematicalKeyboardKey) {
    // works
    self.textDocumentProxy.insertText(sender.insertion)
    shrink(sender)
}

func remove(sender: MathematicalKeyboardKey) {
    // works
    self.textDocumentProxy.deleteBackward()
    shrink(sender)
}

func clear(sender: MathematicalKeyboardKey) {
    // works
    while self.textDocumentProxy.hasText() {
        self.textDocumentProxy.deleteBackward()
    }
    shrink(sender)
}

func moveLeft(sender: MathematicalKeyboardKey) {
    // works
    self.textDocumentProxy.adjustTextPositionByCharacterOffset(-1)
    shrink(sender)
}

func moveRight(sender: MathematicalKeyboardKey) {
    // works
    self.textDocumentProxy.adjustTextPositionByCharacterOffset(1)
    shrink(sender)
}

}

您可以使用 ;

 resignFirstResponder()

方法而不是

 dismissKeyboard()

方法。

@IBAction func hideKeyboard(sender: UIButton) {

    resignFirstResponder()

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM