2013-10-02 36 views
0

我正在構建待辦事項列表,當用戶創建新任務時,我使用UITextfield輸入任務名稱。我想提供的是,當用戶在該UITextField中輸入#時,顯示用戶已經創建的標籤列表,或者如果標籤不存在,我將創建一個新標籤並將其分配給該新任務。UITextField中主題標籤的建議

我已經在這裏搜索,我找不到類似的問題,用適當的awnser。我無法找到一種方法來僅在按#時顯示建議。

順便說一句,對不起我的英語不好。

+0

你的英語很好。你如何試圖檢測輸入的#字符? – Wain

+0

@Wain我試過[鏈接](http://stackoverflow.com/a/16989673/1350222)這種方式,但我越來越#的範圍內。而且這種方法不會讓只有一個標籤被允許,而當我刪除一些字母時,這會變得瘋狂。另外,當用戶不選擇建議時,我不知道如何「自動更正」,即手動輸入標籤並假定它已經存在。 –

回答

1

將您的包含視圖控制器設置爲UITextFieldDelegate。隨着到位,就可以實現

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 

這時候一個數字鍵入到字段被調用,所以檢查對哈希標籤替換字符串,並創建下拉酌情:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    if([string isEqualToString:@"#"]) { 
     [containingViewController showDropdownListFromElement:textField]; 

     // Now consume the hash tag by not allowing the addition 
     return NO; 
    } 
} 
+0

在tableview中顯示建議不是我的問題。我的問題是發現輸入的標籤是否已經存在,或者是否應該爲用戶創建一個。我想要的是在用戶輸入電子郵件的大多數電子郵件客戶端應用程序中實現的功能,並且出現了一些建議,如果用戶沒有選擇任何這些建議,則uitextfield「假設這是一個新建議」。 –

+0

我不確定我關注。要確定類型值是否存在於數組中,是否可以使用謂詞將上述代碼中的textField.text與數組進行比較? – atownag

+0

但是,如何在#後選擇僅文本?如果用戶退格怎麼辦?這種比較應該用你提到的方法來完成?如果用戶沒有選擇我的建議呢?我怎麼才能找到文本字段中是否有標籤? –