Domanda

Sto scrivendo un programma che ha un NSView incorporato in un NSScrollView che l'utente può ingrandire. Mi piacerebbe configurarlo in modo che l'utente possa ingrandire la vista utilizzando il gesto di pizzicamento multitouch supportato su MacBook Air e il nuovo unibody MacBooks / MacBooks Pro e in applicazioni come Safari e iPhoto. Ho cercato la documentazione di Apple e non riesco a capire come fare.

  1. È supportato utilizzando API disponibili pubblicamente su Mac OS X 10.5 Leopard?
  2. In caso contrario, come " bad " sono le API private (ad es. è solo una costante non dichiarata o un insieme completamente nuovo di metodi)?
È stato utile?

Soluzione

Modifica: Snow Leopard aggiunge API supportate per gesti e multi-touch. Consulta le Note sulla versione di AppKit per Snow Leopard ; & # 8984; F per & # 8220; gesto & # 8221; e & # 8220; MultiTouch & # 8221; (Sic). Sembreranno piuttosto familiari se ne hai usati di seguito, ma probabilmente ci sono alcune differenze, quindi leggi comunque la nuova documentazione.


  

È supportato utilizzando API disponibili pubblicamente su Mac OS X 10.5 Leopard?

No. 10.5.0 non lo supporta affatto e da 10.5.1 a 10.5.6 ti fanno implementare metodi non documentati.

  

In caso contrario, come " bad " sono le API private (ad esempio è solo una costante non dichiarata o un insieme completamente nuovo di metodi)?

Non è affatto male. Hai per implementare alcuni metodi di eventi privi di documenti nella tua vista. Poiché sei quello che implementa i metodi, non dovresti andare in crash se Apple cambia i metodi; tutto ciò che accadrà è che la funzione smetterà di funzionare.

Tuttavia, se stai recuperando l'ingrandimento o la rotazione assoluti (non delta) dall'evento, allora quelli sono metodi non ancora documentati dell'evento, quindi dovresti proteggere quei messaggi con respondsToSelector: messaggi ed eseguire attento controllo dell'intervallo sui valori di ritorno dei metodi.

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