簡體   English   中英

如何更改鍵盤的DONE按鈕,iPhone

[英]How to change keyboard's DONE button,iPhone

我有2個文本字段,用於登錄ID和密碼。 當用戶點擊電子郵件ID時,他們的鍵盤類型是電子郵件,密碼是其默認值。 他們完成了兩個鍵盤按鈕,解開了鍵盤。 我想要做的是,一旦用戶填寫了id和密碼,他們的DONE按鈕應該更改為“LOGIN”,我可以在它上面執行選擇器方法登錄。

這可行嗎?

謝謝

如果您使用的是標准iOS鍵盤,那么唯一可用的返回鍵類型是

typedef enum {
    UIReturnKeyDefault,         // “Return”
    UIReturnKeyGo,              // “Go”
    UIReturnKeyGoogle,          // “Google”.
    UIReturnKeyJoin,            // “Join”.
    UIReturnKeyNext,            // “Next”.
    UIReturnKeyRoute,           // “Route”.
    UIReturnKeySearch,          // “Search”.
    UIReturnKeySend,            // “Send”.
    UIReturnKeyYahoo,           // “Yahoo”.
    UIReturnKeyDone,            // “Done”
    UIReturnKeyEmergencyCall,   // "Emergency Call”.
} UIReturnKeyType;

要檢測鍵盤上的鍵更改,您可以注冊名稱:UITextFieldTextDidChangeNotification。 讓我們說你的textfield是emailTextField和passwordTextField。

首先注冊通知,檢測文本輸入

// emailTextField
[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(check)
                                             name:UITextFieldTextDidChangeNotification
                                           object:emailTextField];

// passwordTextField
[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(check)
                                             name:UITextFieldTextDidChangeNotification
                                           object:passwordTextField];

- (void)check {
  if ([emailTextField.text length] > 0 && [passwordTextField.text length] > 0) {
     // Set the return key here, e.g:
     emailTextField.returnKeyType = UIReturnKeyGo;
     passwordTextField.returnKeyType = UIReturnKeyGo;
  }
  else {
     // Set the return key here, e.g: 
     emailTextField.returnKeyType = UIReturnKeyNext;
     passwordTextField.returnKeyType = UIReturnKeyNext;
  }
}

當點擊返回鍵時,它將調用textfield delegate。 你可以這樣做:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    // You can perform selector here, probably after checking if both of the textfields already filled   out. E.g:
    if ([emailTextField.text length] > 0 && [passwordTextField.text length] > 0) {
        [self performSelector:@selector(login)];
    }

    return YES;
}

UITextInputTraits協議定義了以下UIReturnKeyType -

typedef enum {
    UIReturnKeyDefault,
    UIReturnKeyGo,
    UIReturnKeyGoogle,
    UIReturnKeyJoin,
    UIReturnKeyNext,
    UIReturnKeyRoute,
    UIReturnKeySearch,
    UIReturnKeySend,
    UIReturnKeyYahoo,
    UIReturnKeyDone,
    UIReturnKeyEmergencyCall,
} UIReturnKeyType;

為了您的特定目的,您需要有自定義按鈕,您可以查看以下教程 - http://mhasantanim.wordpress.com/tutorial/iphone/customize-done-button/

此外,如果使用InterfaceBuilder,則可以選擇UITextField,並在Attributes Inspector中更改“返回鍵”下拉框的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM