Perché non dovrei usare un cursore rect su una sottoclasse NSView ruotata?

StackOverflow https://stackoverflow.com/questions/1211277

  •  06-07-2019
  •  | 
  •  

Domanda

Sto scrivendo una sottoclasse NSView personalizzata. Ho diverse istanze di questa classe nella mia finestra, la maggior parte delle quali vengono ruotate chiamando il metodo setFrameRotation di NSView. Devo anche cambiare il cursore su una regione rettangolare di questa vista.

Il la documentazione per il metodo addCursorRect di NSView contiene il seguente avviso obliquo:

  

I rettangoli del cursore non sono soggetti a ritaglio da superview, né sono destinati all'uso con viste ruotate .

Beh, schifezze. Ma mi piacerebbe sicuramente usarli perché sono una soluzione molto più bella di hack che altrimenti dovrei usare . E tu sai cosa? L'ho provato e sembra funzionare bene. Tuttavia, quell'avvertimento mi spaventa; Sono preoccupato che il diavolo verrà a riscuotere i suoi debiti a un certo punto lungo la strada. Pertanto, la mia domanda è questa: qualcuno sa perché i rettangoli del cursore non sono destinati all'uso con viste ruotate?

È stato utile?

Soluzione

Sì, sembra che subito dopo aver pubblicato la mia domanda, la risposta mi verrebbe in mente. Sembra che il rilevamento dei colpi impiegato dal cursore rects operi solo su semplici rettangoli; pertanto, se viene ruotata una vista con un rect del cursore, l'effettiva rect del cursore utilizzata sarà il rettangolo più piccolo che racchiude completamente il rect originale ruotato.

Tuttavia, lascio questo aperto nel caso in cui ci siano altri effetti collaterali indesiderati che non vedo.

Altri suggerimenti

Anche se non l'ho provato da solo, sembra che 10.5 abbia aggiunto un nuovo modo di farlo con Tracking Area Objects e non sembra avere la limitazione indicata dal cursore della vecchia scuola avere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top