2016-02-25 51 views
0

我知道視圖控制器必須是firstResponder才能使inputAccessory停留在底部。我正在使用自定義的inputView /鍵盤。我可以通過刪除inputView但不退出第一響應者來通過完成按鈕手動解除它。但是,當我啓用交互式拖動解除我的滾動視圖時,代碼自動辭去第一響應者。那麼,我怎樣才能使用交互式拖拽來解散並保持視圖控制器爲第一響應者?任何人之前做過?我想也許這是不可能的,我可能需要使用手勢識別器來製作我自己的交互式拖動來解散。如何在使用拖動解除拖動時使inputAccessoryView保持在屏幕上?

更多信息: 我有一個按鈕,可以在標準鍵盤和我的自定義鍵盤之間進行切換。我已經看到解僱這些原因2鍵盤確實關閉通知。我認爲我可以成爲keyboardDidHide方法中的firstResponder,但是這種方法效果不佳,因爲我無法分辨手動排除鍵盤和交互式拖動時的差異。這很重要,因爲我不需要重新加載輸入視圖或在我手動解僱時成爲第一響應者,因爲我已經處理了它。

任何建議將是驚人的。我想在UIViewController級別使用inputView和inputAccessoryView。

回答

2

好拉我的頭髮一整天后,我有一個答案。

用我的ViewController的canResignFirstResponder奏效了。在viewWillAppear我設置BOOL responderOverride = YES;

viewWillDisappear我打電話

responderOverride = NO; [self resignFirstResponder];

當滾動視圖交互拖累試圖resignFirstResponder,canResignFirstResponder不返回其防止辭職我的視圖 - 控制並保持我的輸入配件保留,坐在屏幕的底部。

還有很多其他的代碼輸入重裝意見,但因爲真正的問題是如何迫使控制器保持第一響應者,所以我們不會失去我們的輸入配件視圖,那麼這個解決方案的工作。

相關問題