2012-01-04 73 views
0

剛開始使用xcode 4.2的iPhone應用程序。我是否需要爲UITextField創建一個控制器?

我知道在我的應用程序中爲每個視圖使用UIViewController的子類是一種很好的做法,我可以在這些中編寫一些基本代碼來測試關聯視圖上的按鈕等。

現在我想在這些視圖一個執行上的文本字段一些行動,讓我們說,我將使用Value Changed事件登錄每次擊鍵文本字段的內容。

我應該建立某種的UITextField控制器子類的?或者,在處理文本字段的現有ViewController子類中處理這種事情?

如果是後者,我怎麼參閱文本框在視圖控制器子類,並進行連接?

回答

0

你會使用現有的ViewController子類,裏面的文本字段。一個好的經驗法則是每個視圖屏幕一個ViewController(不包括UINavigationController,Modal屏幕,uisplitviewcontroller和彈出窗口)。

引用它,你會作出一個屬性自定義的UIViewController的.H:

@property (nonatomic,weak) IBOutlet UITextField * myTextField; 

注意IBOutlet中的關鍵字。這將允許你在InterfaceBuilder(或你的故事板)中連接它。要了解如何連接,我建議您觀看一段關於IBOutlets的視頻,因爲它更多的是一種視覺效果。

+0

非常感謝。我還可以通過將其聲明爲法醫來訪問文本字段 - 製作財產是否有任何特別的好處?如果其他類需要訪問,該屬性是否屬於該屬性 – 2012-01-04 23:51:50

+0

我喜歡讓它們成爲屬性,因爲它更明確地定義它們是強,弱還是分配(儘管你也可以使用ivars來實現這一點,並且都默認爲強)。我認爲Outlet是一種可以從課程外部訪問的功能,因爲它是在IB/Storyboard中設置的,但這並不一定意味着你必須這樣做,因爲它使用內省來設置它們。我相信Apple的最新樣品有IBOutlets作爲屬性,儘管這是我遵循的慣例。 – 2012-01-05 00:07:51

1

你可能會想你的UIViewController實現UITextFieldDelegate。連接可以通過接口生成器和插座來完成,或者只需在文本字段上設置委託並使用從委託回調中獲得的參考。

相關問題