> On Feb 20, 2017, at 1:44 PM, Yilei He <lionhy...@gmail.com> wrote: > > My whole view's code: > import Cocoa > > class GradientBackgroundView: NSView { > > > override func draw(_ dirtyRect: NSRect) { > let gradient = NSGradient(colors: [ > NSColor(calibratedWhite: 0.96, alpha: 1), > NSColor(calibratedWhite: 0.84, alpha: 1) > ]) > > gradient?.draw(in: dirtyRect, angle: 270)
This is your problem, you need to use the view.bounds here, not the dirtyRect. The dirtyRect is a subregion of the bounds that needs to be redrawn, but your code is basically doing the equivalent of drawing the entire view into whatever dirtyRect you happen to get. > > let path = NSBezierPath() > path.move(to: NSPoint(x: 0, y: 0)) > path.line(to: NSPoint(x: dirtyRect.maxX, y: 0)) > NSColor.darkGray.setStroke() > path.stroke() > } > > } > > Cheers > Yilei He > > On 21 Feb 2017, 04:18 +1100, David Duncan <david.dun...@apple.com>, wrote: >> >>> On Feb 20, 2017, at 2:41 AM, Yilei He <lionhy...@gmail.com> wrote: >>> >>> Hi >>> >>> In my UI design, I have a custom NSView which only draws a NSGradient in >>> draw(in:) method. I also have a NSTextField next to this custom view. Every >>> time when text field is focused, the focus ring animates and leave a set of >>> mark(animation tracks) on the custom view. >> >> Can you share your draw(in:) implementation? >> >>> >>> After I tested this for a while, I found that the focus ring only leaves >>> marks on gradient. >>> >>> Can anyone give a solution to remove the mark? >>> >>> Thanks >>> Yilei He >>> >>> >>> _______________________________________________ >>> >>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) >>> >>> Please do not post admin requests or moderator comments to the list. >>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com >>> >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/cocoa-dev/david.duncan%40apple.com >>> >>> This email sent to david.dun...@apple.com >> >> -- >> David Duncan >> -- David Duncan _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com