Just My Life & My Work

為了方便使用者輸入完之後跳至下一個欄位Text Field當然可以實作出如此的功能!那我們可以怎麼做呢?可以先參考我上篇文章UITextField 輸入完成讓鍵盤消失

這樣的行為也要交給delegate來幫我們處理,所以必須遵從UITextFieldDelegate協定。

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if (textField == _cityTextField) {
        //[textField resignFirstResponder];
        [_districtTextField becomeFirstResponder];
        return NO;
    }
    else if (textField == _districtTextField) {
        //[textField resignFirstResponder];
        [_addressTextView becomeFirstResponder];
        return NO;
    }
    return YES;
}

以上程式碼有何效果,可以參考下圖,首先反應器(Responder)是在_cityTextField手上,當我輸入完_cityTextField,就將反應器交給_districtTextField,同樣當我輸入完_districtTextField,就把反應器交給_addressTextView。

becomeFirstResponder

Notifies the receiver that it is about to become first responder in its window.

– (BOOL)becomeFirstResponder

Return Value

YES if the receiver accepts first-responder status or NO if it refuses this status. The default implementation returns YES, accepting first responder status.

Discussion

Subclasses can override this method to update state or perform some action such as highlighting the selection.

A responder object only becomes the first responder if the current responder can resign first-responder status (canResignFirstResponder) and the new responder can become first responder.

You may call this method to make a responder object such as a view the first responder. However, you should only call it on that view if it is part of a view hierarchy. If the view’s window property holds a UIWindow object, it has been installed in a view hierarchy; if it returns nil, the view is detached from any hierarchy.

Availability

Available in iOS 2.0 and later.

See Also

– isFirstResponder
– canBecomeFirstResponder

Declared In

UIResponder.h

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲