Hi Uli,
thanks for your answer.I want to do the former: when the user enables a mode in 
the application, the cursor changes, exactly in the way you described (the 
shape changes). The user should be able to use this custom cursor over a 
PDFView, a UIScrollView, etc. However, I need the cursor only in one window. 
Later the user can leave this mode and go back to the normal behaviour.I'm 
looking for a solution that does not require subclassing all the views.
Here what I have done so far (it kind of works but flashes...):I set 
contentView of NSWindow to a subclass CBDTrackedView of NSView with 


@implementation CBDTrackedView
- (void)viewWillMoveToWindow:(NSWindow *)newWindow{    NSTrackingArea 
*trackingArea = [CBDCursorManager trackingArea];    [self 
addTrackingArea:trackingArea];}
@end


Then, CBDCursorManager is as follows:

- (instancetype)init{    self = [super init];        if (self)    {        
_trackingArea = [[NSTrackingArea alloc] 
initWithRect:CGRectMake(-CGFLOAT_MAX/2,-CGFLOAT_MAX/2,CGFLOAT_MAX,CGFLOAT_MAX)  
  options:NSTrackingActiveInActiveApp | NSTrackingMouseEnteredAndExited | 
NSTrackingMouseMoved | NSTrackingCursorUpdate                                   
                    owner:self                                                  
  userInfo:nil];    }        return self;}
(...)
- (NSCursor *)cursorForIPhone6{    if (!_cursorForIPhone6)    {        NSImage 
*image = [NSImage imageNamed:@"cursorIPhone6"];                NSCursor *cursor 
= [[NSCursor alloc] initWithImage:image                                         
          hotSpot:NSMakePoint(620, 296)];        _cursorForIPhone6 = cursor;    
}        return _cursorForIPhone6;}- (void)mouseEntered:(NSEvent *)event{    
[self.cursorForIPhone6 set];}
- (void)mouseExited:(NSEvent *)event{    [self.cursorForIPhone6 set];}
- (void)mouseMoved:(NSEvent *)event{    [self.cursorForIPhone6 set];}
- (void)cursorUpdate:(NSEvent *)event{    [self.cursorForIPhone6 set];}
Colas
_______________________________________________

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