setFrame ha creato un NSView che è 15 pixel più piccolo in entrambe le dimensioni del previsto
Domanda
Ho un problema enigmatico. Ho un puntatore a un NSView alla vaniglia che è stato inizializzato in un pennino. Ho inviato messaggi a NSView con:
[myNSView setFrame:NSMakeRect(0,0,816,1056)];
ma quando passo attraverso il debugger, myNSView
ha una cornice di {{0,0}, {801, 1041}}
. Le dimensioni del rettangolo sono 15 in meno di quanto ho specificato! Questo succede costantemente. Se specifico due [setFrames]
di fila, tutto funziona, ma ovviamente questa non è la risposta.
Perché setFrame
fallisce?
Soluzione
15px è esattamente la dimensione di un NSScroller su NSRegularControlSize.
Suppongo che tu abbia il tuo NSScrollView configurato per nascondere automaticamente gli scroller.
Prova a disattivare gli scroller orizzontali e verticali di scrollView nel NIB, se questo risolve il problema, saprai dove cercare da lì. & nbsp; È qualcosa correlato al clipView di scrollView che ridimensiona automaticamente documentView. Il clipView stesso viene ridimensionato automaticamente quando compaiono gli scroller; subito dopo aver impostato documentView su frameSize (l'impostazione 100% immagino) che richiede gli scroller.