2016-09-07 60 views
0

請考慮下面的代碼:iOS版雨燕keyCommands閱讀僅限於數字

override var keyCommands: [UIKeyCommand]? { 
    var commands:[UIKeyCommand] = [] 

    let numbers = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] 
    for number in numbers { 
     let txt = number as String 
     commands.append(UIKeyCommand(input: txt, modifierFlags: [], action: #selector(keyPressed(_:)))) 
    } 
    commands.append(UIKeyCommand(input: "\r", modifierFlags: [], action: #selector(enterPressed))) 
    return commands 
} 

出於某種原因,只有數字越來越閱讀。這是用於模擬鍵盤的藍牙條形碼掃描器。 keyCommands不能讀取字母字符,或者我做錯了什麼?

+0

條形碼是否包含小寫字母? –

+0

沒有。全部大寫。我甚至試着讓數組只包含一個X(我的測試條碼中的一個值),但它仍然沒有讀取它。 –

+0

是否有某處將UIKeyboardType設置爲全數字鍵盤? –

回答

0

感謝埃里亞雅我能夠得到這個工作。以下是我修改的代碼。它可能不是最優雅的解決方案,但它的工作原理:

override var keyCommands: [UIKeyCommand]? { 
    var commands:[UIKeyCommand] = [] 

    let numbers = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] 

    for number in numbers { 
     let txt = number as String 
     if Int(txt) == nil { 
      commands.append(UIKeyCommand(input: txt, modifierFlags: [UIKeyModifierFlags.Shift], action: #selector(keyPressed(_:)))) 
     } else { 
      commands.append(UIKeyCommand(input: txt, modifierFlags: [], action: #selector(keyPressed(_:)))) 
     } 
    } 
    commands.append(UIKeyCommand(input: "\r", modifierFlags: [], action: #selector(enterPressed))) 
    return commands 
}