2009-10-22 233 views
2

我想要做的是複製像在郵件應用程序和消息應用程序中看到的UITextField NSTokenField(鍵入一個聯繫人,它帶有建議)。自定義UITextField/UIButton

我已經完成了自動完成工作,當您鍵入UITextField時,UITableView彈出顯示它可以在數組中找到的任何匹配項,當您單擊它將其添加到UITextField時。到目前爲止我對此感到非常高興。

我現在遇到的問題是使控件看起來像在本機應用程序中的那些。畢竟,設計就是一切!

我的第一個問題是如何將該陰影看添加到UITableView?看起來像是在UITextField背後沉沒。

其次,我知道我將不得不繼承UITextField以使其看起來像我喜歡的方式,但我不知道從哪裏開始。一些指針或樣本會很棒!

最後,我想我需要創建一個自定義UIButton,其中包含用於文本的空間,然後將藍色漸變添加到UITextField中。與UITextField相同的問題,並不確定如何繼承UIButton(它需要繪製什麼樣的方法和東西),或者如何將它添加到UITextField中,使得當您單擊UITextField中的退格時,按鈕將會被突出顯示,然後被刪除,如果backspace再次被點擊(確切地說NSTokenField是如何工作的)。

我已經包括圖像,所以您可以看到我在談論: http://www.thermoglobalnuclearwar.com/stuff/mail.jpg

我已經採取了看看喬Hewitts Three20項目,但我不能讓元首或它的尾巴。 我想要簡單地開始並理解所發生的一切,而不僅僅是將他的代碼拖入我的代碼中,而不知道發生了什麼。

任何幫助,非常感謝!

謝謝, 湯姆。

回答

1

好吧,我已經在UITextField下面工作了,我已經爲它添加了「To:」標籤。看起來不錯!

所以最後的事情是藍色的NSToken像控制。我開始認爲最簡單的事情就是繼承UIView並在其中繪製藍色漸變和標籤。這給我帶來了一些更多的問題:

我發現這個:http://github.com/leonho/iphone-libs/tree/master它繪製了一個不錯的圓角視圖,我調整它添加一些文本而不是數字,我不知道該怎麼做繪製一個漸變而不是一個固定的顏色塊。

之後,只需要向UITextField添加四捨五入視圖,移動光標並在光標到達時如何刪除視圖,但我會在需要時解決該問題。

+0

您可以使用以下消息[textField addSubview:customView]將自定義視圖添加爲UITextField的子視圖; 其他地方提到的TTPickerTextField類展示了實現所需其餘任務(如處理鍵盤輸入和選擇等)的一種方法。 要創建自定義UITextField類,請使用XCode的新文件對話框來添加從NSObject派生的新類,然後用頭文件中的UITextField替換NSObject。在Interface Builder中,您可以使用巡視窗口將您的UITextField的標識更改爲「MyCustomTextField」。 – 2009-10-26 23:28:15

+0

謝謝。 然後,我必須將所有UITextField方法添加到自定義類,還是自動調用,因爲它只是一個子類? – 2009-10-27 14:45:51

+0

嗨,你完成了這個項目嗎?我正在努力達到同樣的效果。 – 2010-04-30 15:24:04

1

您是否考慮過使用Three20 library?它包含一個我認爲可以實現你想要的控件(TTPickerTextView)。

由於網站說明指出

TTPickerTextField是一種超前的UITextField。當您鍵入它時,將搜索數據源,並且當您選擇提前輸入選項時,它會將氣泡添加到文本流中。我在 TTMessageController中使用它來選擇消息收件人的名稱。

至少源代碼可能會給你一些關於如何實現各種視覺效果的指針。

+1

我已經在幾個不同的場合嘗試過了,但就像我上面說過的,我無法使用它。所有東西都是子類的子類,並與子類的子類一起繪製。 我真的需要知道的是如何非常簡單地繼承UIButton和UITextField,以及如何覆蓋每個的繪圖方法,以便我可以自己做。 我可以在以後遇到更難的東西。 – 2009-10-23 12:42:27