2016-04-06 32 views
1

對於iOS開發來說相當新穎,所以請原諒我提出一些可能非常明顯的問題。大家都知道的UITextField的鍵盤與鍵盤類型設置爲.NumberPad看起來如下...爲UITextField的.NumberPad鍵盤添加一個減號

.NumberPad keyboard

我想這樣做是在用減號左下角更換空的空間。這是可能的還是需要編寫一個完整的自定義鍵盤來實現這一點?

非常感謝您的幫助。

+1

理論上你可以關注[this](http://stackoverflow.com/a/20233101/2710486),但它並不是真正的'安全'。您可能想要嘗試自定義鍵盤,或在accessoryView中添加額外的按鈕。 – zcui93

回答

7

添加工具欄到您的文本字段inputAccessoryView當文本字段將成爲應答,則鍵盤會顯示工具欄(雨燕3.0):

func addToolBar(){ 
    let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: 44)) 
    let minusButton = UIBarButtonItem(title: "-", style: .plain, target: self, action: #selector(toggleMinus)) 
    toolbar.items = [minusButton] 
    theTextField.inputAccessoryView = toolbar 
} 

func toggleMinus(){ 

    // Get text from text field 
    if var text = theTextField.text , text.isEmpty == false{ 

     // Toggle 
     if text.hasPrefix("-") { 
      text = text.replacingOccurrences(of: "-", with: "") 
     } 
     else 
     { 
      text = "-\(text)" 
     } 

     // Set text in text field 
     theTextField.text = text 

    } 
} 

希望它幫助。

+0

我將如何使其實際上將減號按鈕插入文本? –

+0

你可以在toggleMinus函數中做到這一點。 此按鈕的使用似乎是此問題的常用解決方法。但是,如果用戶在輔助功能中打開了按鈕形狀,這些按鈕將以下劃線顯示。鍵盤的其餘部分沒有。所以我認爲這不是一個好的解決方案。 –