我无法获得视图边框的NSRect。我一直收到一个无法识别的选择器错误。
以下是代码:
NSGradient *BorderGradient = [[NSGradient alloc] initWithStartingColor:[NSColor blackColor] endingColor:[NSColor whiteColor]];
[BorderGradient drawInRect:[self.window.contentView borderRect] angle:-90];
// Unrecognized Selector error here
我正在尝试访问border rect以向边框添加颜色渐变。当我尝试自己访问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
非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
NSView
(从self.window.contentView
返回的内容)没有borderRect
方法,导致无法识别的选择器错误。
您可能需要frame
或bounds
。
答案 1 :(得分:1)
NSView
没有名为-borderRect
的方法。这是您实施的自定义方法吗? NSBox
确实有-borderRect
方法。您是否期望窗口的内容视图是NSBox的实例?你有没有检查过,这确实是真的。
也许你真的想要-frame
或-bounds
?