2016-12-14 83 views
0

好吧,我有一個工具欄,我正在使用它作爲附件,因此只有在出現鍵盤時纔會顯示。我有這樣做的工作;使TextField處於活動狀態按下按鈕

@IBOutlet var toolBar: UIToolbar! 
@IBOutlet weak var playerInput: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    playerInput.delegate = self 
    playerInput.inputAccessoryView = toolBar 
} 

爲了測試它的工作,我只是做視圖中的臨時文本框的地方,並將其連接爲playerInput。但這不是我的設計最終要求的。我需要將textField置於用作附件的工具欄上,並且在導航欄上有一個按鈕,用於選擇textField,就像用戶觸摸它一樣,以便顯示鍵盤,工具欄和焦點。

是否有可能讓我的按鈕功能@IBAction func addButton(){}的行爲像用戶觸摸textField,因此它會調出鍵盤並顯示工具欄?

編輯:當我將playerInput.becomeFirstResponder()添加到我的按鈕@IBAction函數,沒有任何反應。在我的iPhone 6s或iPhone模擬器上運行此按鈕,按下按鈕不會執行任何操作。添加控制檯打印以確保按鈕正常工作,工作得很好,所以我知道該按鈕正在工作。編輯2:好吧,所以我有一個非常可怕的解決方法,讓事情發生。我在主視圖中添加了第二個textField並將其隱藏起來。然後將我的工具欄附件視圖設置爲新的隱藏文本字段。所以當按下按鈕時,它會將隱藏的textField作爲第一響應者來調用,該響應者將附帶具有真正textField的工具欄。然後用戶可以選擇真正的textField並正確保存它們的輸入。這一切都工作。唯一的問題是,如果用戶通過向下滑動來解除鍵盤的關閉,貝殼將重新出現一次,迫使它們再次將其滑動關閉。

回答

1

是的,你可以通過playerInput.becomeFirstResponder()來實現。

+0

不幸的是,將此添加到我的按鈕功能並在模擬器或iPhone 6s上運行,沒有任何反應。按下按鈕,突出顯示,甚至當我添加'print(「按下按鈕」)時打印到控制檯。 – kingfoot

+0

您確定您在模擬器中啓用了軟件鍵盤嗎?模擬器>硬件>鍵盤>切換軟件鍵盤。 – Connor

+0

是的。就像我說的,當模擬器和我的實際iPhone 6s按下按鈕時,什麼也不做。 – kingfoot

相關問題