iPhone/iPad 键盘调光

标签 iphone ipad keyboard ipod iphone-softkeyboard

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

最佳答案

键盘被发现为新窗口的 subview ,新窗口出现时会添加该窗口。发现它有点老套和脆弱(需要检查新的 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 代码。

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

不幸的是,这种方法并不能阻止小按键闪烁(当您点击按键时弹出的较大按键)达到全亮度。

关于iPhone/iPad 键盘调光,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704151/

相关文章:

iphone - 资源问题——本地化和 iPhone/iPad XIBs 都坏了

iphone - 如何dequeueReusableCellWithIdentifier : work?

css - 使用后台附件 :fixed in safari on the ipad

iphone - 如何检查 UIImageView 是否超出了 UIScrollView 的可见区域?

ios - 主视图 Controller -> 详细 View Controller 通信

c++ - QML:多次按下/释放后某些键未处理

iphone - 以恒定音量播放 iPhone 音频

ios - 如何在 iPhone 6 plus 上实现新的类似 iPad 的横向模式

c++ - 处理键盘输入的回调

swift - 动态更改键盘扩展的高度