I have a custom button, which was added as a subview of a textview. And I
want the cursor to be changed to arrowCursor instead of the beam cursor
when hover on the button.

So I added tracking area. The cursorUpdate method was indeed called, but
the cursor was still the beam cursor. It seems the cursor was changed back
to beam cursor after cursorUpdate method was called.

Any ideas?


- (void)cursorUpdate:(NSEvent *)event {
    [[NSCursor arrowCursor] set];
}

// myAddTrackingArea is called in awakeFromNib.
- (void)myAddTrackingArea {
    [self myRemoveTrackingArea];

    NSTrackingAreaOptions trackingOptions = NSTrackingCursorUpdate |
NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow;
    _trackingArea = [[NSTrackingArea alloc] initWithRect: [self bounds]
options: trackingOptions owner: self userInfo: nil];
    [self addTrackingArea: _trackingArea];
}

- (void)myRemoveTrackingArea {
    if (_trackingArea)
    {
        [self removeTrackingArea: _trackingArea];
        _trackingArea = nil;
    }
}
_______________________________________________

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

Reply via email to