【问题标题】:iPhone/iPad Keyboard DimmingiPhone/iPad 键盘调光
【发布时间】:2012-12-27 16:42:08
【问题描述】:

我正在编写一个主要在夜间使用的通用应用程序。我将需要显示一个键盘,但不希望键盘的浅色使用户失明和/或破坏他们的夜视能力。我不想费力地创建自定义键盘,所以我认为解决方案可能是将 UIView 放在键盘上并给它一个黑色背景颜色,alpha 为 0.5 或其他东西,但是,我想不通了解如何让 UIView 覆盖键盘。有谁知道如何做到这一点?苹果允许吗?

【问题讨论】:

    标签: iphone ipad keyboard ipod iphone-softkeyboard


    【解决方案1】:

    键盘作为新窗口出现时添加的子视图被发现。发现它有点笨拙和脆弱(需要检查新的 iOS 版本,因为它之前已经更改过)但它确实有效并且是允许的(我在应用商店中的应用中为夜间模式执行此操作) .

    UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1]; // This assumes you aren't adding any new windows yourself
    
    for(UIView *keyboard in tempWindow.subviews) 
    {
        if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) // This was different in an earlier version of iOS, and may well change again in the future!
        {
            [keyboard addSubview:maskView];
            break;
        }
    }
    

    这是在响应UIKeyboardDidShowNotification 对象的方法中完成的。我没有在 iPad 上试过,这只是 iPhone 代码。

    正如您所说,遮罩视图只是一个带有黑色背景和一些透明度的普通视图。您还可以使用警报键盘样式,在按键之间留出一个黑色空间。

    不幸的是,这种方法不能防止小键闪烁(当您点击一个键时会弹出较大的键)处于全亮状态。

    【讨论】:

    • 我确实注意到,当您在 iPad 上拆分键盘时,这无法正常工作。我怀疑我需要创建 2 个 UIView - 一个用于键盘的每一半...
    • 好地方 - 正如我所说的,我没有在 iPad 上做过这个,所以我没有注意到。引入拆分键盘之类的东西正是为什么这是实现这一目标的一种脆弱方式。
    【解决方案2】:

    尝试对 UITextFiled/UITextArea(正在使用的那个)的 inputView 属性应用所需的更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-04
      • 2013-02-20
      • 2011-05-16
      • 2011-03-21
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      相关资源
      最近更新 更多