简体   繁体   中英

Custom Keybord return title set IOS8

I built a custom keyboard. But i faced a problem that return button title change. Suppose when i go to search bar from my keyboard then it should show "Go". And for default textfield it should show "return"For Searchbar it should show "search".

How can i get the keyboadType and how can i do that can anybody help me ? Though keyboadType return only bool value.

- (void)textDidChange:(id<UITextInput>)textInput {
 UIColor *textColor = nil;
    if (self.textDocumentProxy.keyboardAppearance == UIKeyboardAppearanceDark) {
        textColor = [UIColor whiteColor];
    } else {
        textColor = [UIColor blackColor];
    }
      NSLog(@"Keyboard Type: %d", self.textDocumentProxy.keyboardType);
    NSLog(@"key: %d",  [textInput keyboardType]);
}

Here both return bool value 0 for All field such as web search,email,defaulttext field.

There's a property

@property(nonatomic) UIReturnKeyType returnKeyType;  

defined in the UITextInputTraits protocol. So what you probably want to do is:

UITextField *myTextField; // your textfield..
myTextField.returnKeyType = UIReturnKeyGo;

For other possible values see UIReturnKeyType :

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

This might helps :) Thanks.

Keyboard type and return key type are two different things. Keyboard type is defined by UIKeyboardType:

typedef NS_ENUM(NSInteger, UIKeyboardType) {
    UIKeyboardTypeDefault,                // Default type for the current input method.
    UIKeyboardTypeASCIICapable,           // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
    UIKeyboardTypeNumbersAndPunctuation,  // Numbers and assorted punctuation.
    UIKeyboardTypeURL,                    // A type optimized for URL entry (shows . / .com prominently).
    UIKeyboardTypeNumberPad,              // A number pad (0-9). Suitable for PIN entry.
    UIKeyboardTypePhonePad,               // A phone pad (1-9, *, 0, #, with letters under the numbers).
    UIKeyboardTypeNamePhonePad,           // A type optimized for entering a person's name or phone number.
    UIKeyboardTypeEmailAddress,           // A type optimized for multiple email address entry (shows space @ . prominently).
    UIKeyboardTypeDecimalPad NS_ENUM_AVAILABLE_IOS(4_1),   // A number pad with a decimal point.
    UIKeyboardTypeTwitter NS_ENUM_AVAILABLE_IOS(5_0),      // A type optimized for twitter text entry (easy access to @ #)
    UIKeyboardTypeWebSearch NS_ENUM_AVAILABLE_IOS(7_0),    // A default keyboard type with URL-oriented addition (shows space . prominently).
    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated
};

Return key type is defined by UIReturnKeyType:

typedef NS_ENUM(NSInteger, UIReturnKeyType) {
    UIReturnKeyDefault,
    UIReturnKeyGo,
    UIReturnKeyGoogle,
    UIReturnKeyJoin,
    UIReturnKeyNext,
    UIReturnKeyRoute,
    UIReturnKeySearch,
    UIReturnKeySend,
    UIReturnKeyYahoo,
    UIReturnKeyDone,
    UIReturnKeyEmergencyCall,
};

You can use textDocumentProxy.returnKeyType to get the return key type and change return key accordingly.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM