iOS 8 今日小部件 - SLComposeViewController 未正确显示

Posted

技术标签:

【中文标题】iOS 8 今日小部件 - SLComposeViewController 未正确显示【英文标题】:iOS 8 Today Widget - SLComposeViewController not displaying properly 【发布时间】:2014-06-09 06:45:56 【问题描述】:

我使用 Xcode 6 创建了一个扩展程序,实际上是一个 Today Widget,并在我的 ios 8 beta 设备上运行它(我是一名注册的 iOS 开发人员)。

但是,作为开发新手,我遇到了这个问题,SLComposeViewController 被“卡”在其视图中(如下所示),认为用户无法与其交互,因此无法发布一条推文。

有没有办法解决这个问题并将SLComposeViewController 放在前面,在通知中心窗格的前面?任何帮助将不胜感激。

编辑:(耶,修复了“Hello World”文本)

第二次编辑:这是我的SLComposeViewController 代码:

- (IBAction)TwitterShare:(id)sender; 

    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
    
        SLComposeViewController *tweetSheet = [SLComposeViewController
                                               composeViewControllerForServiceType:SLServiceTypeTwitter];
        [self presentViewController:tweetSheet animated:YES completion:nil];
    

    else

    

        UIAlertView *twitterAlert = [[UIAlertView alloc] initWithTitle:@"Uh oh!" message:@"Ensure you have setup a valid Twitter account and/or you have allowed access for Twitter in this application." delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];


        [twitterAlert show];
        twitterAlert = nil;
    


【问题讨论】:

你能分享你的 SLComposeViewController 代码吗? 如上共享,任何帮助都会很棒! 仅供参考 IIRC,您不能使用 Today 扩展中的键盘。让我试着找到这方面的参考。 找到了。来自App Extensions Programming Guide:“由于用户与小部件的交互快速且有限,因此您应该设计一个简单、流线型的 UI,突出用户感兴趣的信息。一般来说,限制交互项目的数量是一个好主意。小部件。特别是,请注意,iOS 小部件不支持键盘输入。" 看来你真的需要adjust the height 【参考方案1】:

根据 Apple 的文档,SLComposeViewController 不允许在 NC 中显示。他们希望任何需要键盘输入的事情都发生在应用内。

【讨论】:

以上是关于iOS 8 今日小部件 - SLComposeViewController 未正确显示的主要内容,如果未能解决你的问题,请参考以下文章

今日 iOS 8 小部件中的音乐播放器控件

iOS 8 今日界面生成器

iOS 8 beta 5 今天视图扩展(小部件)卡在等待附加

今日 iOS 小部件仅在调试时显示

iOS - 以编程方式创建今日小部件扩展

Xamarin-iOS今日小部件,无法加载问题