2015-10-26 95 views
1

我想用自定義鍵盤替換UITextField的默認鍵盤。所以我創建了一個帶有xib文件的UIViewController的新子類(另一種方式就像分別創建兩個文件並設置文件的所有者也不起作用)。UITextField inputView - IBActions未觸發

然後我在KeyboardView上添加了一個按鈕,並將它連接到IBAction。從那以後,我設置文本框inputView像這樣的新觀點:

override func viewDidLoad() { 
    let keyboardVC = KeyboardViewController() 
    textField.inputView = keyboardVC.view 
    keyboardVC.view.autoresizingMask = .FlexibleHeight 
    keyboardVC.delegate = textField 
} 

它的工作和自定義鍵盤顯示出來,但如果我觸摸按鈕,IBAction爲不叫。我的設置有什麼問題? (我查了一些例子,他們都以同樣的方式做)。

UPDATE:

我現在刪除的視圖控制器和子類UIView的。現在這些行動正在起作用。爲什麼它不使用ViewController?

回答

0

由於沒有人持有UIViewController - 在viewDidLoad()結束後沒有提及它,它將從內存中釋放。 當按下按鈕時,應該響應該動作的視圖控制器不存在 - >您僅持有視圖控制器的視圖textField.inputView

+0

這就是我在閱讀了一些類似於stackoverflow的線程之後的假設。但是:爲什麼沒有'exc_bad_access'? (只是爲了我的理解)(並感謝您的回答) – Lupurus

相關問題