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がないため、 UnrecognizedSelectorエラーが発生します。borderRect

あなたはおそらく欲しいframeか、bounds代わりに。

于 2013-02-13T16:42:15.037 に答える
1

NSView。という名前のメソッドはありません-borderRect。実装したカスタムメソッドですか?NSBoxメソッドがあり-borderRectます。ウィンドウのコンテンツビューがNSBoxのインスタンスになることを期待していますか?それが実際に真実であることを確認しましたか。

おそらくあなたは本当に欲しいです-frame-bounds

于 2013-02-13T16:43:00.373 に答える