Cocoa预定义调整鼠标光标?

ATV*_*ATV 5 cocoa objective-c appkit nscursor

是否使用预览(例如调整形状大小时)系统光标时调整大小的鼠标光标?

在此输入图像描述

它不能直接作为方法使用,NSCursor但它看起来不像预览应用程序包中的光标有私有资源.

除了NSCursor类定义的方法之外还有更多的系统游标吗?

Mar*_*k H 9

我认为你对这些类方法特别感兴趣(Preview.app dissasembly).

+[NSCursor resizeAngle45Cursor]; which calls +[NSCursor _windowResizeNorthEastSouthWestCursor];
+[NSCursor resizeAngle135Cursor]; which calls +[NSCursor _windowResizeNorthWestSouthEastCursor];
Run Code Online (Sandbox Code Playgroud)

根据AppKit的反汇编,这些是NSCursor的私有方法.

你可以在你的代码中尝试它,例如

 (void)mouseDown:(NSEvent *)theEvent
{
  [[self window] disableCursorRects];

  id cursor = [[NSCursor class] performSelector:@selector(_windowResizeNorthEastSouthWestCursor)];
  [cursor push];
}
Run Code Online (Sandbox Code Playgroud)

还有更多的无证游标,如

+[NSCursor _helpCursor];
+[NSCursor _zoomInCursor];
+[NSCursor _zoomOutCursor];
Run Code Online (Sandbox Code Playgroud)

还有很多 在此输入图像描述