1

我在获取视图边框的 NSRect 时遇到问题。我不断收到无法识别的选择器错误。

这是代码:

NSGradient *BorderGradient = [[NSGradient alloc] initWithStartingColor:[NSColor blackColor] endingColor:[NSColor whiteColor]];
[BorderGradient drawInRect:[self.window.contentView borderRect] angle:-90];
// Unrecognized Selector error here

我正在尝试访问边框矩形以向边框添加颜色渐变。当我尝试自行访问borderRect时,代码也会崩溃,如下所示:

NSRect rect = [self.window.contentView borderRect];
NSLog(@"origin.x = %f", rect.origin.x);

如果尝试将 drawInRect: 转换为 CGRect。像这样:

NSGradient *BorderGradient = [[NSGradient alloc] initWithStartingColor:[NSColor blackColor] endingColor:[NSColor whiteColor]];
[BorderGradient drawInRect:NSRectToCGRect([self.window.contentView borderRect]) angle:-90];
// Unrecognized Selector error here

任何帮助将不胜感激。

谢谢!

4

2 回答 2

1

NSView(从中返回的内容self.window.contentView)没有borderRect方法,这会导致Unrecognized Selector 错误

您可能想要framebounds相反。

于 2013-02-13T16:42:15.037 回答
1

NSView没有名为 的方法-borderRect。它是您实现的自定义方法吗?NSBox确实有-borderRect方法。您是否希望您的窗口的内容视图是 NSBox 的一个实例?你有没有检查过,这实际上是真的。

也许你真的想要-frame-bounds

于 2013-02-13T16:43:00.373 回答