首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ios的共享扩展中访问keyWindow?

如何在ios的共享扩展中访问keyWindow?
EN

Stack Overflow用户
提问于 2015-06-15 14:52:43
回答 3查看 2.8K关注 0票数 4

我需要在我的应用程序的共享扩展模块中访问keyWindow

  • 添加一些指示器视图
  • 访问窗口的宽度和高度

我在share扩展类中编写了以下代码行:

代码语言:javascript
复制
UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];

但是,它说'sharedApplication‘不可用。

如何在共享扩展中访问keyWindow?

需要您的宝贵建议。

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2015-06-15 15:01:45

共享应用程序不可用于扩展。你不能从share extension.You访问key窗口,可以从UINavigationController中子类ShareExtension视图控制器,并且可以呈现一个模态视图控制器,然后导航也是可能的。在模式视图控制器中,您可以添加活动指示器。

票数 0
EN

Stack Overflow用户

发布于 2017-11-17 18:58:59

代码语言:javascript
复制
UIApplication *application = [UIApplication performSelector:@selector(sharedApplication)];
UIWindow *keyWindow = application.keyWindow;

然而,keyWindow是零...

票数 0
EN

Stack Overflow用户

发布于 2015-09-01 04:19:51

UIApplication不可用于扩展。要添加一个指示器视图,你必须通过你的UIViewController堆栈来完成,但是你可以获得屏幕的大小,这可能已经足够了,这取决于确切的用例(swift):

代码语言:javascript
复制
UIScreen.mainScreen().bounds.size

阅读more here了解UIScreen mainScreen.bounds与UIApplcation sharedApplication.keyWindow.bounds之间的区别?

更新

使用UIScreen获取大小的另一种方法是导航视图层次结构。这可以在UIView或UIViewController中放置视图的任何位置运行。您还可以将指示器添加到最顶部的视图中。

代码语言:javascript
复制
// Find the top most view
var view: UIView = self;
while let higherView = view.superview {
    view = higherView;
}

// Size you need
var size: CGSize = view.frame.size;

// Add the indicator
let indicator: UIView = UIView(frame: CGRectMake(100, 100, 100, 100));
indicator.backgroundColor = UIColor.orangeColor();
view.addSubview(indicator);
view.bringSubviewToFront(indicator);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30838956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档