- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 OSX 应用程序中发现了一个问题,我认为这是 Mavericks 的错误。
我有以下层次结构:
NSView->NSScrollView->NSClipView->NSTableView
当 ScrollView 不包含任何记录时,我将创建一个覆盖 View 作为 NSView 的 subview ,并将其放置在其他 subview 之上。我这样做是使用:
[containerView addSubview:overlay
positioned:NSWindowAbove
relativeTo:nil];
仅供引用,覆盖 View 是一个自定义的 NSView 子类,它带有一个用于绘制覆盖本身的drawRect。
在 Mountain Lion 上,此功能正常,但在 Mavericks 上,叠加层不会出现。谷歌搜索后我认为这是因为覆盖层没有位于其他同级 View 之上。
我找到了这些链接供引用:
Maverick Issue When Adding Subview on NSView (Stack Overflow)
第二个链接建议使用以下代码来解决该问题,它似乎确实如此,但由于我的应用程序中没有任何图层支持的 View ,这感觉有点不对劲:
[overlay setWantsLayer:YES];
除了建议的方法之外,还有人可以建议解决此问题的方法吗?
编辑:我发现,如果我在添加 subview 后的原始代码中放置 Xcode 断点(没有解决方法), subview 就会正确添加,并且我的覆盖 View 被展示。如果我删除断点,则不再显示覆盖 View 。这种行为是否表明了什么?
谢谢
达伦。
最佳答案
看起来您已经被重叠的 View 咬伤了:
Note: For performance reasons, Cocoa does not enforce clipping among sibling views or guarantee correct invalidation and drawing behavior when sibling views overlap. If you want a view to be drawn in front of another view, you should make the front view a subview (or descendant) of the rear view.
来自苹果的Working With A View Heirarchy .
正如您所注意到的,解决此问题的常见建议是设置一个图层。但是,从 10.4 开始,您可以使用 setHidden:
隐藏 View ,请参阅上述引用中的隐藏 View 。这可能会解决您的特定问题,因为您的重叠似乎是完全的(您不想看到两个 View 的一部分,而只想看到其中一个)。
HTH
关于objective-c - Subview 不会出现在 Mavericks 上;作品《山狮》,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21968402/
安装了 Mountain Lion 和 Xcode5。尝试打开最近为 iOS6 开发的项目。现在 xcode 非常慢。有什么想法他现在有什么问题吗? 编辑 它适用于我创建的新项目。只有当我打开旧项目时
我是通过homebrew安装rbenv的,现在不知道为什么path_helper把~/.rbenv/shims放在路径的末尾而不是开头。最重要的是,path_helper 是如何获得这些信息的? 根据
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我已经为此苦苦挣扎了太多时间。我正在尝试安装 OpenNI 2 以使我的 kinect 与 OS X Mountain Lion 上的 Mac 一起工作。 我从 http://www.openni.o
有没有人得到关于如何让 C++11 在 OS X mountain lion 下与 SublimeClang 一起工作的说明。 如果我使用非 C++11 库和代码,它会很高兴,但一旦我尝试使用 std
我在 Mac OSX 10.8.5 上安装了 64 位 R(R 版本 2.15.2 (2012-10-26) --“不给糖就捣蛋”),并安装了来自 Oracle 的 Oracle Instantcli
我正在使用 WWDC 的代码来访问用户的 Facebook 帐户: self.accountStore = [[ACAccountStore alloc] init]; ACAccountType *
$ sudo virtualenv test Password: Sorry, try again. Password: New python executable in test/bin/pytho
OS X 10.8.2。我有一个 webView,我在其中加载 HTML 文档。 (一次一个,响应用户输入。) 我正在使用 WebScriptObjects,以便当用户单击每个 HTML 文档中的菜单
我在我的 OSX 应用程序中发现了一个问题,我认为这是 Mavericks 的错误。 我有以下层次结构: NSView->NSScrollView->NSClipView->NSTableView 当
我已经安装了 Mountain Lion,但无法让 phpunit 工作。 $ pear config-get bin_dir /Users/greg/pear/bin $cd /Users/greg
我正在全新安装 OS X Mountain Lion。我通过以下方式安装了 Rails: sudo gem install rails 一切似乎都安装正确,但是当我键入 rails 命令(rails
我通过 Homebrew 软件安装了 mysql。我运行了 brew 建议的两个命令: unset TMPDIR mysql_install_db --verbose --user=`whoami`
操作系统:苹果操作系统10.8.3 xcode: 4.6.3 w 已安装命令行工具 /usr/local/bin/git ->/usr/local/git/bin/git 有什么解决办法吗? (我能够
我试图从 XQuartz (X11) 终端运行我的程序,当我编译我的可执行文件时,它上面没有星号,它不会运行。它说当我键入名称时找不到该命令。我曾经使用过 Xcode,并且下载了命令行工具。我对 C+
免责声明:全新的 iOS 开发者。对我放轻松。 在 Xcode 4.5 中遇到了一个有趣的情况。我的尺寸检查器看起来像这样: ...而且我根本看不到支柱和 Spring 区域。 真正奇怪的是,当我点击
我的理解是,Mountain Lion 将在默认情况下禁止通过 Gatekeeper 安装非签名应用程序的配置中发布。 我目前分发一个开源应用程序;这是一个业余爱好项目,我不收取任何费用。我是否可以在
我是一名优秀的程序员,十分优秀!