2013-02-17 44 views
2

我有一個UITextField我打電話becomeFirstResponder當我加載ViewController。對此,我有一個UIScrollView,我想在textField上撥打resignFirstResponder,當我有滾動出我認爲。resignFirstResponder當UITextField在UIScrollView上沒有看到

UITextField的位置可能會改變,但行爲應該保持不變。關於如何實現這種事情的任何想法?謝謝。

+0

爲了記錄,[objective-c]標籤應該保留用於與Objective-C朗讀使用或語法相關的問題。這個問題更側重於使用Cocoa Touch庫。同樣,[iphone]標籤在這裏也不合適,因爲它將問題標示爲特定於iPhone,並排除iPad。純粹的pedrantry,我知道:D – sjwarner 2013-02-17 15:40:44

回答

1

我會看看你的scrollViewcontentOffset屬性的變化。知道scrollViewboundscontentOffsettextFieldframe您可以計算出textField是否可見。類似以下內容應該工作:

CGRect scrollViewVisibleBounds = CGRectOffset(scrollView.bounds, scrollView.contentsOffset.x, scrollView.contentsOffset.y); 
BOOL textFieldIsVisible = CGRectIntersectsRect(textField.frame, scrollViewVisibleBounds); 

您現在的問題是如何觀察對contentOffset的更改。經常觀察(即通過KVO)並不是真的可行,因爲在例如減速動畫期間,您會每秒收到多個更新。我會考慮將您的viewController設置爲UIScrollViewDelegate,並通過scrollViewDidEndDragging:scrollViewDidEndDecelerating等回調更新您的textField的可見性。

相關問題