2016-04-06 87 views
1

iOS開発にはまったく新しいので、非常に明白かもしれない何かを尋ねるために私を許してください。あなたはすべて知っているようにKEYBOARDTYPEとUITextFieldのキーボードは.NumberPadに設定するには、私がやりたい何UITextFieldの.NumberPadキーボードにマイナス記号を追加する

.NumberPad keyboard

はマイナス記号と左下隅に空きスペースを置き換えるです...以下のようになります。これは可能ですか、これを実現するためにカスタムキーボード全体を書く必要がありますか?

本当に助けていただければ幸いです。

+1

あなたは理論的に[これ](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関数で行います。 このようなボタンの使用は、この問題の一般的な回避策のようです。しかし、ユーザーがアクセシビリティでButton Shapesをオンにしている場合、これらのボタンは下線付きで表示されます。キーボードの残りの部分はありません。だから私はこれが良い解決策ではないと思う。 –

関連する問題