2014-03-06 27 views
1

我有一個簡單的應用程序,最近它的前提已更改。它曾經是一個用戶可以點擊一個文本字段,並會在鍵盤上方出現一個自定義工具欄,允許用戶從自定義按鈕中選擇要添加到文本字段中的文本。因此,如果用戶輸入約翰的按鈕並按下按鈕,則文本字段會將婚禮添加到最後,以便現在說約翰的婚禮。自定義鍵盤文本完全替換UISearchBar中的文本而不是添加到它[iOS]

我最近更改了UI,以便在用戶選擇文本字段時合併新的表視圖控制器,因爲我已經發生了一些自動填充,使用戶更容易。我已將鍵盤向前移動,但現在,不是將自定義按鈕添加到搜索欄中的文本中,而是簡單地替換它。

所以,如果你在搜索欄中鍵入約翰並按婚禮在自定義鍵盤,搜索欄的文本完全被約翰替換爲婚禮。這並不理想,我需要解決這個問題。

下面是一些代碼:

-(void)configureKeyboardToolbars 
{ 
    UIToolbar *eventToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 
                      self.view.window.frame.size.width, 44.0f)]; 
    eventToolBar.tintColor = [UIColor colorWithRed:0.6f green:0.6f blue:0.64f alpha:1.0f]; 
    eventToolBar.translucent = NO; 
    eventToolBar.items = @[ [[UIBarButtonItem alloc] initWithTitle:@"Wedding" 
                   style:UIBarButtonItemStyleBordered 
                   target:self 
                   action:@selector(barButtonAddText:)], 

    // With the text field, the line below used to be:  self.eventTextField.inputAccessoryView = eventToolBar; 

    self.eventAddSearchBar.inputAccessoryView = eventToolBar; 

這就需要下面的方法:

// A method that responds to the tool bar buttons being pressed 
-(IBAction)barButtonAddText:(UIBarButtonItem*)sender 
{ 
    if (self.eventAddSearchBar.isFirstResponder) 
    { 
     self.eventAddSearchBar.text = sender.title; 
    } 
} 

這曾經是:

// A method that responds to the tool bar buttons being pressed 
-(IBAction)barButtonAddText:(UIBarButtonItem*)sender 
{ 
    if (self.eventTextField.isFirstResponder) 
    { 
     [self.eventTextField insertText:sender.title]; 
    } 
} 

所以搜索欄不具有insertText方法我可以理解它只是簡單地替換它上面的文字;但是我不確定如何根據用戶輸入的內容將自定義工具欄單詞添加到搜索欄文本的END(或開頭)處。

如果用戶在打字前按下按鈕,它將是婚禮約翰,如果用戶按下它(更可能),它應該是約翰的婚禮,或任何用戶鍵入。

任何援助都會很長的路!

回答

2

也許我誤解,但不能你只是這樣做:

NSString *text = self.eventAddSearchBar.text; 
self.eventAddSearchBar.text = [text stringByAppendingFormat:@" %@", sender.title]; 
+0

哦,夥計 - 我的道歉這樣一個愚蠢的問題。那絕對是!非常感謝那裏的幫助,這不應該是我花費那麼多時間!再次感謝您的幫助和我的道歉,這是非常基礎的! – amitsbajaj

相關問題