Cocoa预定义调整鼠标光标?

时间:2014-12-02 05:18:25

标签: objective-c cocoa appkit nscursor

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

enter image description here

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

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

1 个答案:

答案 0 :(得分:9)

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

+[NSCursor resizeAngle45Cursor]; which calls +[NSCursor _windowResizeNorthEastSouthWestCursor];
+[NSCursor resizeAngle135Cursor]; which calls +[NSCursor _windowResizeNorthWestSouthEastCursor];

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

您可以在代码中尝试使用它,例如

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

  id cursor = [[NSCursor class] performSelector:@selector(_windowResizeNorthEastSouthWestCursor)];
  [cursor push];
}

还有更多未记录的游标,例如

+[NSCursor _helpCursor];
+[NSCursor _zoomInCursor];
+[NSCursor _zoomOutCursor];

还有更多 enter image description here