问题标签 [keywindow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
753 浏览

xcode - NSBorderlessWindowMask 子视图 NSTextfield 不是键盘可编辑的 Swift

我在 Swift 项目(没有情节提要)上的主窗口中使用 NSBorderlessWindowMask,当我加载子视图时,NSTextfield 插座不可键盘编辑。我已经把这段代码放在了初始化上:

这允许插座像焦点一样为“蓝色”,但键盘编辑被禁用,我可以在文本字段上复制/粘贴

0 投票
1 回答
455 浏览

touch - iOS 8.x 中的 UIAlertController 无法响应触摸事件,触摸事件是否发送到键窗口对象?

我有一个关于 UIAlertController 的问题。它不能接收任何触摸事件并被解雇。我以这种方式发送警报:

在这段时间之后,出现了警报视图。但是当我尝试单击“确定”时,没有响应。所以我点击了alert view周围的空白区域,下层的按钮接收并做出响应。

在我的应用程序中,有一个第三方 SDK,它提供了一个暂停按钮和登录/注销 UI。该按钮将始终存在,但除非我调用它,否则不会显示 UI。SDK 在初始化时会将两个窗口添加到应用程序的窗口数组中。所以'[UIApplication sharedApplication].windows'中有三个对象。看起来像这样:

索引 1 处的应用程序窗口、索引 0 和 2 处的窗口是第三方 SDK。

作为 iOS 开发者库中的官方文档,引用如下:“一个事件沿着特定的路径传播,直到它被传递给可以处理它的对象。首先,单例 UIApplication 对象从队列顶部获取一个事件并调度它进行处理。通常,它将事件发送到应用程序的关键窗口对象,该对象将事件传递给初始对象进行处理。初始对象取决于事件的类型。来自https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/event_delivery_responder_chain/event_delivery_responder_chain.html

据我了解,触摸事件应该发送到应用程序的关键窗口,但实际上我的应用程序的窗口不是。该文档使用“典型”一词,因此我不确定我的应用程序中的情况是否例外。如果存在多个窗口,则没有提及事件如何传递。

所以我像这样更改我的代码:

'controller' 的默认值将分配给 'keyWindow.rootViewController' 以相反的顺序移动应用程序的窗口数组,并选择最顶层对象的 'rootViewController' 来显示警报。有用!

如果这是正确的解决方案,这个问题让我感到困惑?或者有其他文件可以解释吗?</p>

PS:

每个操作都在主线程上

0 投票
1 回答
889 浏览

ios - UIApplication sharedApplication keyWindow - iOS App Widget

我有一个适用于 iOS 8 的简单应用程序和小部件。我正在使用 UIImage+ImageEffects 源文件。该库中的一个函数称为“convertViewToImage”,其中包含以下代码:

但是,在编译应用程序扩展时,该方法的第一行给我们带来了错误。

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];

出现以下错误:

sharedApplicaion 不可用:在 iOS 上不可用(应用程序扩展) - 在适当的情况下使用基于视图控制器的解决方案。

有谁知道我该如何解决这个问题?

谢谢,丹。

0 投票
1 回答
2584 浏览

ios - Swift:UIView.insertSubview( , aboweSubview) 在 iOS 8 上不起作用

这已经困扰了我几个小时了,我似乎找不到解决方案:(。

我有一个UITableView,当我单击一行时,我想在“卡片”中显示该行的详细信息。我在 keywindow 中添加卡片是因为我希望它在 上方,并且在卡片的背景中UINavigationBar有一个透明的视图

这就是我的代码的样子

当我单击UITableView行时,会发生这种情况

这是 iOS 7 (7.1) 中屏幕的样子

在此处输入图像描述

这就是它在 iOS 8 (8.3) 中的样子

在此处输入图像描述

我希望它在 iOS 8 中的外观与在 iOS 7 中的外观相同。我不知道为什么keyWindow?.insertSubview(self.vwTransparentView, belowSubview: self.vwCard)不起作用。我也尝试过相反的方法insertSubview( ,aboweView:)

0 投票
1 回答
205 浏览

objective-c - 意外的 NSWindow 成为关键窗口

我的应用程序中有一个带有按钮的 main NSWindow。当按下按钮时,它会执行以下操作:

这在大多数情况下都可以正常工作,但是如果我在按下按钮之前打开了第二个窗口(称为“其他”窗口)并且在另一个屏幕上,则会发生以下情况:

  1. 我的新窗口已创建,设置为键,并在前面排序。
  2. 前一个窗口已排序。
  3. “其他”窗口成为关键。

查看堆栈跟踪,我可以看到由于发送了一些通知,“其他”窗口正在成为关键。这不在我的应用程序中,所以必须是 Cocoa 的东西。鉴于我明确地说哪个窗口应该是关键窗口,为什么 Cocoa 会忽略它并将其更改为其他窗口?有没有更好的方法来做我想做的事?

如果所有窗口都在同一个屏幕上,则不会发生这种情况。

0 投票
1 回答
430 浏览

ios - 将 UIView 添加到 KeyWindow,如何在调用 pushViewController 时将 UIView 设置为关闭屏幕?

我已经添加了一个UIView[UIApplication sharedApplication].keyWindow它工作正常。

当点击按钮时UIView,我想将新按钮推UIViewController送到底层NavigationController

这一切都有效,但我怎样才能使UIView动画离开屏幕,向左,与底层UIViewController

0 投票
1 回答
578 浏览

ios - 如何在添加到 keyWindow 的视图上方呈现模式?

我添加了一个视图[[UIApplication sharedApplication] keyWindow],因为我们希望它与导航栏重叠。

现在我们想要点击视图上的一个按钮并以模态方式打开一个窗口,最好使用presentViewController. 有没有办法让这个模态视图出现在 keyWindow 视图上方(在 z 轴上)?

我的答案

我最终将我的第一个自定义添加UIViewControllerself.tabBarController. 这允许UIViewController重叠导航栏和标签栏。

然后我[self.navigationController presentViewController:animated:completion]用来呈现模态,它在 z 轴上高于一切。

这是添加UIViewControllerself.tabBarController

0 投票
0 回答
249 浏览

ios - 在框架内获取 keyWindow nil

我正在制作一个框架,我需要keyWindow进入框架内部以在其上添加一些视图。尝试以通常的方式获取时,UIApplication.sharedApplication().keyWindow每次返回时nil

是否有可能keywindow进入框架?如果是,那么如何获取它或者是否有任何其他方式可以在其他视图之上添加一些视图,而不管任何视图控制器。

0 投票
0 回答
79 浏览

objective-c - 如何恢复 keyWindow (NSView - Appkit)

我有一些代码可以打开一个模式窗口(它本身由几个视图组成)并在我们单击它的任意位置时使其关闭。

这是代码的一部分:

该错误是在窗口关闭后,应用程序(启动模态窗口)将不再接收任何键事件(虽然它仍然是模态窗口仍处于打开状态)。只有在我重新关注应用程序之后,它才会再次接收到关键事件。

请任何人给我一些想法,我在网上找不到相关的东西。

谢谢纳撒尼尔

0 投票
1 回答
182 浏览

swift - 首次登录时加载 childViewControllers

我一直在努力解决加载子 ViewControllers 的问题。我第一次登录时显示了 containerView 但没有加载 childViewControllers。当我关闭应用程序并重新打开应用程序并保存登录状态时,会显示容器视图中的子视图。我知道这与我的窗口层次结构和 rootviewController 有关。我已经对此进行了很多研究,但仍然在解决问题。提前致谢!

// 应用委托 @UIApplicationMain

// mainNavigationController - RootViewController

// 登录功能

// 家庭控制器