gpt4 book ai didi

cocoa - NSSplitView 中的 NSTableView 框架不正确

转载 作者:行者123 更新时间:2023-12-03 17:44:49 27 4
gpt4 key购买 nike

在我的 Mac 应用程序中,我设置了两个 NSSplitView 来创建邮件样式界面(第一个 ScrollView 用于创建垂直分隔符,第二个 ScrollView 嵌套在第一个 ScrollView 中,以创建水平分隔符)。为了说明该界面,我创建了下图:

alt text http://img96.imageshack.us/img96/1091/setupn.png

为了进一步说明设置,下面是我的 View 层次结构的带注释的快照:

alt text http://img714.imageshack.us/img714/8153/yayaj.png

我遇到的问题是,当尝试抓取 NSSplitView 的 B 和 C 部分中托管的两个 NSTableView 的框架时,我收到相对坐标。这是我正在使用的代码:

NSRect aTableViewFrame = [aTableView frame];
NSRect bTableViewFrame = [bTableView frame];
NSLog(@"%@ %@", NSStringFromRect(aTableViewFrame), NSStringFromRect(aTableViewFrame));

这是我看到的输出:

{{0, 0}, {760, 143}} {{0, 0}, {760, 392}}

正如您从返回的 NSRect 值中看到的那样,我得到了 NSTableView 的正确宽度和高度,但我真正想要的是它们相对于父 NSSplitView 的位置。当然,我可以使用(多个)IBOutlet 并自己构造正确的 rect 值,但我真正寻找的是一种简单的方法来获取相对于父 NSSplitView 或包含窗口的 NSTableView 的框架。

最佳答案

如果您有分割 View ,或者通过设置 socket 来获取它,则可以使用convertRect:fromView:。或者要获取窗口相对坐标,您可以使用 convertRectToBase:。请记住,表格的框架将相对于其 super View ,因此您可以使用类似 [[bTableView superView] ConvertRectToBase: bTableViewFrame] 的内容。

关于cocoa - NSSplitView 中的 NSTableView 框架不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com