2009-09-17 22 views
0

我花了幾天的時間嘗試解決UITextField的限制,即沒有text wrapnumber of lines。我創建了一個UILabel,用於顯示在UITextField中輸入的文本,並正確執行所有格式化操作。 UITextFieldhidden,用戶看到輸入時僅在UILabel中輸入的所有text解決iPhone的UITextField的侷限性

除了在UILabel上缺少光標以顯示用戶輸入字段的下一個字符將顯示在哪裏之外,一切都正常工作。

我已經嘗試過在label上使用各種字符作爲遊標。但是沒有解決這個事實,即它不是iPhone上的標準閃爍光標指示器,所以整個事情看起來是錯誤的。

在我放棄發貨並參與UITextView(擁有自己的一套問題)之前,我想知道是否有人對如何將閃爍的光標添加到標籤文本的文本字段有任何意見。

在此先感謝。

回答

0

您的方法有其他問題,因此值得重新思考該策略。

  • 選擇如何看起來像?
  • 複製+粘貼?
  • 你是否處理從左到右的語言?
  • 自動更正?

該列表當然更長,但我認爲這足以考慮其他解決方案。但我同意所有UIKit的文本處理都有點差。

+0

UITextView的主要問題是UITouch問題,它嘗試讓用戶在完成鍵入時(在視圖獲得觸摸時複製+粘貼接管)移動屏幕上的文本字段。 UITextField不具有相同的問題,但不能有多行。自動更正等工作很好,隱藏的UItextField和UILabel作爲顯示。光標是最後一個障礙。 – cameron 2009-10-04 15:11:26

0

如果您不需要支持選擇,複製和粘貼,並且只需要多行輸入,則可以使用|字符和動畫,就好像它在閃爍一樣......或者是標籤頂部的自定義疊加視圖,它將根據字符串的長度和使用的字體實現光標繪圖,動畫和定位。

– sizeWithFont:forWidth:lineBreakMode: 
– sizeWithFont:constrainedToSize: 
– sizeWithFont:constrainedToSize:lineBreakMode: 
– sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 

可能有助於實現這一點。

+0

這可能是解決方案。我會給它一個鏡頭併發布結果。非常感謝您的建議。 – cameron 2009-10-04 15:16:50

0

那麼,什麼問題阻止你去UITextView?解決這些問題似乎可能更容易。

+0

試圖陷入touchesbegan和touchesmoved被證明並不像我想的那樣直截了當,因爲在我的應用程序被通知之前,複製+粘貼方法響應觸摸事件。我需要讓用戶在屏幕上向上或向下移動文本,並將其放在他們想要的位置。只要文本視圖被觸摸,複製+粘貼邏輯就會接管,這就是我的應用程序參與隨後事件的結尾! – cameron 2009-10-04 15:17:26