SLComposeViewController 深色键盘外观
Posted
技术标签:
【中文标题】SLComposeViewController 深色键盘外观【英文标题】:SLComposeViewController Dark Keyboard Appearance 【发布时间】:2014-05-12 04:46:29 【问题描述】:
UIKeyboardAppearanceDark
和SLComposeViewController
怎么用?
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's
的keyboardAppearance
键盘。
要实现 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 深色键盘外观的主要内容,如果未能解决你的问题,请参考以下文章
SL 在 iOS 的 SLComposeViewController 中代表啥?
无法呈现视图控制器 (SLComposeViewController)
无法使用 SLComposeViewController 将图像发布到 Facebook?