在我的 Mac 应用程序中,我设置了两个 NSSplitView 来创建邮件样式界面(第一个 ScrollView 用于创建垂直分隔符,第二个嵌套在第一个中,以创建水平分隔符)。为了说明界面,我创建了下图:
替代文字 http://img96.imageshack.us/img96/1091/setupn.png
为了进一步说明设置,这是我的视图层次结构的注释快照:
替代文字 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 的位置。当然,我可以使用(多个)IBOutlets 并自己构建正确的 rect 值,但我真正想要的是一种简单的方法来获取 NSTableViews 相对于父 NSSplitView 或包含窗口的框架。