【问题标题】:SLComposeViewController Dark Keyboard AppearanceSLComposeViewController 深色键盘外观
【发布时间】:2014-05-12 04:46:29
【问题描述】:

UIKeyboardAppearanceDarkSLComposeViewController 怎么用?


SLComposeViewController 类向用户展示了一个视图,以便为支持的社交网络服务撰写帖子。

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

[self presentViewController:controller
                   animated:YES
                 completion:nil];

SLComposeViewController Class Reference


丑!

这是浅色键盘在深色背景下的外观:


样机!

这是深色键盘在深色背景下的外观:

【问题讨论】:

  • 这是目前XPC的iOS中少见的例子。因此,您对此无能为力。设置任何类型的 UIApperance 属性只会影响应用中的视图,但通过 XPC 获得的视图似乎无效。据推测,iOS 8 可能会向我们的开发人员开放其中的一些功能,因此现在只使用轻键盘并等待它可能是值得的!它不应该伤害太多:)

标签: ios ios7 uikeyboard ios7.1 uiappearance


【解决方案1】:

我尝试了几种方法。我发现唯一可行的方法是自定义整个 ComposeViewController。我也相信这是唯一可能的方法。

我找到了一个名为 REComposeViewController 的开源项目,我将其自定义为默认具有 UIKeyboardAppearanceDark。我已经上传到Github了,大家可以下载玩玩。

项目https://github.com/voyage11/SLComposeViewControllerWithBlackKeyboard

附加屏幕截图:-

【讨论】:

  • 所以这是完全自定义的?它仍然使用社交/帐户框架吗?它的工作方式和苹果的完全一样吗?
【解决方案2】:

在仔细了解您面临的问题并进行一些研发后,我建议您选择自定义 ComposeViewController,因为您无法更改ComposeViewController'skeyboardAppearance键盘。

要实现 Customize ComposeViewController,请按照以下步骤操作:

1) 制作了一些自定义视图,例如 SLComposeViewController's 视图。

2)在发帖按钮上需要实现SLComposeViewControllerResultDone中的逻辑

 [_shareComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result)
 {

     switch (result)
     {
         case SLComposeViewControllerResultCancelled:

             break;
         case SLComposeViewControllerResultDone:
         {

         }
             break;
         default:
             break;
     }
 }];

3) 当你想显示你的自定义视图时,确保你在自定义视图中使用的 textView 必须将keyboardAppearance's 属性分配给@ 987654330@

 self.yourTextField.keyboardAppearance = UIKeyboardAppearanceDark;

下面是我在最近的项目中实现的自定义视图的图片。

希望对你有所帮助。

【讨论】:

    【解决方案3】:

    这是一个私有类,因此您唯一的机会是在SLComposeViewController 加载其视图后遍历视图层次结构,找到对应的UITextField 并将keyboardAppearance 设置为UIKeyboardAppearanceDark

    更新从头开始,即使遍历视图层次结构也会很棘手(不可能),因为它使用 XPC 和远程视图。

    【讨论】:

      【解决方案4】:

      您可以使用此代码

      self.yourTextField.keyboardAppearance = UIKeyboardAppearanceDark;
      

      【讨论】:

        猜你喜欢
        • 2012-09-27
        • 2019-09-22
        • 1970-01-01
        • 2020-09-24
        • 2013-04-22
        • 2015-03-22
        • 2012-05-02
        • 2012-12-01
        • 1970-01-01
        相关资源
        最近更新 更多