突出显示 iOS 键盘上的“返回”按钮

Posted

技术标签:

【中文标题】突出显示 iOS 键盘上的“返回”按钮【英文标题】:highlight the 'return' button on the iOS keyboard 【发布时间】:2012-02-11 11:21:28 【问题描述】:

我正在尝试找到一种方法来突出显示标准 ios 键盘上的返回按钮,但我没有找到任何文档。

有人知道怎么做吗?

非常感谢您的回答。

【问题讨论】:

下次发帖前,请记住根据常见问题解答不允许签名,请检查您的帖子是否存在拼写和语法错误。 好的,谢谢,我不知道... 苹果官方文档显示“Go”按钮高亮显示 (developer.apple.com/library/IOs/#documentation/StringsTextFonts/…)。这是怎么做到的? 好像没人知道啊???? 我为你开始了赏金活动,希望能引起一些关注。 【参考方案1】:

返回按钮无法高亮,UIReturnKeyType的不同值存在高亮状态:

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

除了UIReturnKeyDefault(顺便说一句“返回”)之外,所有这些都出现了蓝色突出显示。

您可以在任何符合UITextInputTraits 的文本输入控件上设置UIReturnKeyType(例如UITextFieldUITextView[id <UITextInputTraits> returnKeyType]

【讨论】:

【参考方案2】:

如果你想再自定义一下你的 textView,我找到了一个关于 how to add a custom button to the keyboard 的例子。该代码的日期为 2008 年 3 月,我无法使其在 iOS5 上运行,但您可以理解:

@synthesize window;
@synthesize viewController;

- (void)applicationDidFinishLaunching:(UIApplication *)application     

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    window.backgroundColor = [UIColor blackColor];
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];


- (void)keyboardWillShow:(NSNotification *)note 

    //The UIWindow that contains the keyboard view
    UIWindow* tempWindow;

    //Because we cant get access to the UIKeyboard throught the SDK we will just use UIView. 
    //UIKeyboard is a subclass of UIView anyways
    UIView* keyboard;

    //Check each window in our application
    for(int c = 0; c < [[[UIApplication sharedApplication] windows] count]; c ++)
    
        //Get a reference of the current window
        tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:c];

        //Get a reference of the current view 
        for(int i = 0; i < [tempWindow.subviews count]; i++)
        
            keyboard = [tempWindow.subviews objectAtIndex:i];

            if([[keyboard description] hasPrefix:@"(lessThen)UIKeyboard"] == YES)
            
                //Keyboard is now a UIView reference to the UIKeyboard we want. From here we can add a subview
                //to th keyboard like a new button
                dot = [UIButton buttonWithType:UIButtonTypeCustom];
                dot.frame = CGRectMake(0, 163, 106, 53);
                [dot setImage:[UIImage imageNamed:@"period.gif"] forState:UIControlStateNormal];
                [dot setImage:[UIImage imageNamed:@"period2.gif"] forState:UIControlStateHighlighted];
                [keyboard addSubview:dot];
                [dot addTarget:self action:@selector(addDot:)  forControlEvents:UIControlEventTouchUpInside];

                return;
            
        
    

【讨论】:

以上是关于突出显示 iOS 键盘上的“返回”按钮的主要内容,如果未能解决你的问题,请参考以下文章

在Objective-C,iOS中突出显示另一个类的按钮

iOS:带有 SecureEntry 的 UITextField 有时会用“强密码”文本突出显示黄色,然后键盘卡住

突出显示时,表格单元格中的 iOS 自定义按钮变暗

使用 JavaScript/jQuery 根据突出显示的文本返回 CSS 选择器列表

iOS 在突出显示或选择时将按钮文本更改为粗体

如何在 NativeScript 中为 iOS 更改突出显示状态的按钮文本颜色?