2014-03-31 69 views
1

我有一個UITextField,當點擊時,調出UIPickerView_myTextField.inputView = _myPicker;)。禁用硬件鍵盤編輯UITextField

但是,在模擬器中,我可以使用我的Mac鍵盤輸入UITextField。這是不可取的,因爲我使用的是UIPickerView

如何禁用或忽略正在使用拾取器的文本字段的硬件鍵盤輸入?

+0

我不認爲你需要這樣做,因爲你的應用程序不會在Mac系統上運行。所以別擔心。但仍然希望這樣做,您可以爲您的文本字段設置一些有效的字符。 [參考鏈接](http://stackoverflow.com/questions/14557925/ios-how-to-restrict-special-characters-in-uitextfield-except-dot-and-underscores) – Pawan

+2

@pawan但是,如果他們有一個連接到iPad的外部鍵盤?他們可以在模擬器上使用Mac鍵盤的相同方式在應用程序中使用它。 – David

回答

1

你可以使用- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string拒絕任何有單個字符輸入(例如按鍵,我相信將有1 range.length)。這對複製/粘貼操作沒有幫助,但會覆蓋單個按鍵。

+0

謝謝,這對我有效。我只是檢查了它是哪個文本字段並返回了否:) – BytesGuy

0

這是你在找什麼?

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    // Here You can do additional code or task instead of writing with keyboard 
    return NO; 
} 

我希望這幫助

+0

如果我這樣做,'UIPickerView'不會顯示何時點擊'UITextField',什麼都不會發生。 – BytesGuy

+0

這是行不通的,因爲@Newbzors明確表示他們使用選擇器作爲該字段的'inputView'。 – Stonz2

+0

好的,只是一個嘗試 – HCarrasko