SLComposeViewController 深色键盘外观

Posted

技术标签:

【中文标题】SLComposeViewController 深色键盘外观【英文标题】:SLComposeViewController Dark Keyboard Appearance 【发布时间】: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 可能会向我们的开发人员开放其中的一些功能,因此现在只使用轻键盘并等待它可能是值得的!它不应该伤害太多:) 【参考方案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;

【讨论】:

以上是关于SLComposeViewController 深色键盘外观的主要内容,如果未能解决你的问题,请参考以下文章

白色按钮 SLComposeViewController

SL 在 iOS 的 SLComposeViewController 中代表啥?

无法呈现视图控制器 (SLComposeViewController)

无法使用 SLComposeViewController 将图像发布到 Facebook?

是否有开源框架可以轻松实现与 SLComposeViewController 的社交分享?

使用类似于SLComposeViewController的Swift将UIImage发布到Instagram