【问题标题】:Update UIKeyboardAppearance while keyboard is shown显示键盘时更新 UIKeyboardAppearance
【发布时间】:2014-08-04 11:14:46
【问题描述】:

Cocoa Touch 允许通过设置 UITextInputTraits 协议的 keyboardAppearance 属性来更改键盘外观,该协议在 UITextField 和 UITextView 类中实现。

似乎在键盘已在屏幕上时更新keyboardAppearance 属性不会更新键盘外观。

作为一种解决方法,我想关闭键盘并重新打开它。有没有更好的方法来解决这个问题?

【问题讨论】:

  • 我不相信我在屏幕上见过键盘类型切换样式。即使可以,如果在审查期间违反了 Apple 的用户界面指南,我也不会感到惊讶。您具体想做什么,也许我们可以提出其他想法?
  • 这是自动主题更改(亮/暗或白天/黑夜)功能的一部分,类似于在 Tweetbot 和 Tick 中实现的功能。前者只是为两个主题都使用深色键盘,而后者只是在主题自动更改时关闭键盘。
  • 哦,我明白了。抱歉,那我没有更好的答案了。也许在键盘打开之前根据时间设置主题?至少下次自然重新打开键盘时,它会匹配。

标签: ios objective-c cocoa-touch keyboard uikit


【解决方案1】:

这是一个烦人的限制,我也有同样的要求。

我能找到的唯一选择是打电话:

self.textView.resignFirstResponder()
self.textView.keyboardAppearance = UIKeyboardAppearance.Dark
self.textView.becomeFirstResponder()

它在没有刷新的情况下工作,但因为我连接到 UIKeyboardWillShow/HideNotifications 更改 contentInsets 等,键盘下方的内容明显重新洗牌。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2020-03-02
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多