我正在嘗試做一些我認爲很簡單的事情。你如何改變UIControl專注於iPhone?
我有一個窗體上有兩個UITextFields。第一個使用的是UIReturnKeyNext樣式。這個想法是,當用戶填寫第一個字段時,他們點擊下一步,我將它們轉換到下一個UITextField。我見過其他的應用程序這樣做,它的工作非常好。但我無法弄清楚如何把重點放在下一個領域。
我正在嘗試做一些我認爲很簡單的事情。你如何改變UIControl專注於iPhone?
我有一個窗體上有兩個UITextFields。第一個使用的是UIReturnKeyNext樣式。這個想法是,當用戶填寫第一個字段時,他們點擊下一步,我將它們轉換到下一個UITextField。我見過其他的應用程序這樣做,它的工作非常好。但我無法弄清楚如何把重點放在下一個領域。
簡單。發送becomeFirstResponder消息到您的其他文本字段。當其他文本字段接受第一響應者狀態時,它將從鍵盤接收信息。
例如:
//called when the next button is pressed
//Assume textField1, 2, and 3 are instances of UITextField
-(IBAction) nextPressed: (id) sender {
if ([textField1 isFirstResponder]) {
[textField2 becomeFirstResponder];
}
if ([textField2 isFirstResponder]) {
[textField3 becomeFirstResponder];
}
}
答案上面,你想從原來的文本字段resignFirstResponder異常的偉大工程。
如果您不退出第一響應者,當下一個字段成爲第一響應者時,IOS自動滾動調整將不起作用。 (鍵盤可能會覆蓋下一個文本字段。)
-(IBAction) nextPressed: (id) sender {
//Resign first so that when the next field becomes firstResponder
//the text field will scroll into place if covered by the keyboard
[sender resignFirstResponder];
if ([textField1 isFirstResponder]) {
[textField2 becomeFirstResponder];
}
if ([textField2 isFirstResponder]) {
[textField3 becomeFirstResponder];
}
}
這是我的第一個想法很好,但我被這個文檔,其中明確規定becomeFirstResponder用於當他們即將成爲以通知UIResponder混淆急救人員。在Mac OSX上,NSResponder禁止直接調用becomeFirstResponder。但是,事實證明你是正確的。 – Andy 2009-01-22 18:26:16
是否將nextPressed鏈接到每個文本字段(在上面的示例中,將其鏈接到textField1,2,3)? – HollerTrain 2010-01-03 00:25:21