2016-04-06 3 views
1

Явно новичок в развитии iOS, поэтому простите меня за то, что вы спросите то, что может быть совершенно очевидно. Как вы все знаете, клавиатура UITextField с keyboardType установлен .NumberPad выглядит следующим образом ...Добавление знака минус к клавиатуре .NumberPad UITextField.

.NumberPad keyboard

То, что я хотел бы сделать, это заменить пустое пространство в левом нижнем углу со знаком минус. Возможно ли это или нужно написать целую пользовательскую клавиатуру для достижения этого?

Очень понравилась бы помощь.

+1

Теоретически вы могли бы следовать [это] (http://stackoverflow.com/a/20233101/2710486), но это не совсем «безопасно» для этого. Вы можете попробовать пользовательскую клавиатуру или добавить дополнительную кнопку в accessoriesView. – zcui93

ответ

7

Добавить панель инструментов в вашем текстовом поле inputAccessoryView и когда TextField станет ответчиком, то клавиатура будет показывать панель инструментов (Swift 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. Это использование кнопок, похоже, является обходным решением этой проблемы. Но если у пользователя есть кнопки Shapes включены в доступности, эти кнопки будут отображаться с подчеркиваниями. Остальная клавиатура не работает. Поэтому я считаю, что это нехорошее решение. –

Смежные вопросы