Inserisco tali elementi nel metodo di visualizzazione? O c'è qualcosa di analogo?NSView ha qualcosa di analogo ai metodi setNeedsLayout/layoutSubviews di UIView?
risposta
Analogamente a layoutSubviews
è il metodo resizeSubviewsWithOldSize:
di NSView
. Suppongo che, analogamente a setNeedsLayout
, chiamerei direttamente resizeSubviewsWithOldSize:[self frame].size
.
Al OSX 10.7:
- (vuoto) la layout è equivalente a layoutSubviews
V'è ora un setNeedsLayout identica.
Ignora questo metodo se la visualizzazione personalizzata deve eseguire layout personalizzati non espressivi utilizzando il sistema di layout basato su vincoli. In questo caso sei responsabile di chiamare setNeedsLayout: quando qualcosa che impatta il tuo layout personalizzato cambia.
Non è possibile invalidare alcun vincolo come parte della fase di layout, né invalidare il layout della superview o delle visualizzazioni al di fuori della gerarchia della vista. Inoltre, non è possibile richiamare un passaggio di disegno come parte del layout.
È necessario chiamare [super layout] come parte della propria implementazione.
Questo è solo per il layout basato su vincoli (noto anche come 'Layout automatico ') – UncleAli
A volte, resizeSubviewsWithOldSize
non viene chiamato. Quindi, provare a ignorare resizeWithOldSuperviewSize
.
resizeSubviewsWithOldSize: sembra che non faccia nulla. Non viene mai chiamato per me. Forse è perché uso l'autolayout e la documentazione dice che è correlato all'autorizzazionamento.
di NSView disposizione sembra essere la stessa di layoutSubviews di UIView. Sono entrambi superabili se si vuole fare un lavoro speciale da sostituire o in aggiunta all'autorizzazion o all'autolayout.
Chiamando questo su UIView
[view setNeedsLayout];
sembra essere lo stesso di questo su NSView
view.needsLayout = YES;
che pone la domanda, perché è "setNeedsLayout" anche un nome di funzione? Come, davvero, hai deciso di rimuovere il parametro da una funzione setter e mantenere il "set" nel titolo? Perché non "scheduleLayout"? Ciò eliminerebbe la necessità di domande di overflow dello stack come questo.
Grazie per aver pubblicato i risultati. – mattsven
- 1. JUnit 3 ha qualcosa di analogo a @Ignore
- 2. JUnit 3 ha qualcosa di analogo a @BeforeClass?
- 3. Alternativa ai metodi di visualizzazione automatica di UIView da deprecare
- 4. Gson ha qualcosa come @JsonProperty per i metodi?
- 5. Risposta ai tocchi Inizia in UIPickerView invece di UIView
- 6. Java ha osservatori di proprietà simili ai metodi WillSet e didet di Swift?
- 7. Comportamento autoresizing di NSView
- 8. Hive ha qualcosa di equivalente a DUAL?
- 9. Metodi di estensione rispetto ai metodi regolari - Idi migliori pratiche
- 10. Metodi di crittografia dei file Php. Esiste qualcosa di semplice?
- 11. passaggio di valori oggetto ai metodi
- 12. Manomanti metodi 'statici' rispetto ai metodi 'istanza'
- 13. UIView non obbedisce ai vincoli di autolayout in UIScrollView
- 14. Come assegnare priorità ai riconoscitori di gesti e ai tocchi in un UIView
- 15. Superamento dei limiti di Python relativi ai metodi di istanza
- 16. limiti di NSView vs telaio
- 17. Rust ha qualcosa come scanf?
- 18. aggiornamento brew ha rotto qualcosa?
- 19. NSView Mouse tracking
- 20. Markup analogo al JSON
- 21. Come si accede ai metodi di classe protetti dai metodi di istanza in Ruby?
- 22. iOS ha qualcosa di simile a RecyclerView di Android?
- 23. Lua non ha qualcosa di paragonabile a method_missing di Ruby?
- 24. Funzioni rispetto ai metodi statici
- 25. Qualunque analogo di rsync per Ant?
- 26. Analogo PHP di funzione simile a mysql
- 27. Come bloccare gli eventi NSView con un altro NSView?
- 28. Aggiungere un'animazione di arricciatura pagina a un NSView?
- 29. immagine di sfondo ripetuta in un NSView
- 30. metodi get/set JavaScript rispetto ai metodi standard
possibile duplicato di [cacao: qual è il modo corretto per dire a NSWindow di rivisualizzare il suo contenuto?] (Http://stackoverflow.com/questions/4676412/cocoa-what-is-the-proper-way- to-tell-an-nswindow-to-redisplay-its-contents) –
Penso che sia una domanda diversa. Uno sta chiedendo come dire alla finestra di rivisualizzare tutto da zero. L'altro sta chiedendo solo il layout. –
In effetti: questa è una domanda diversa. – jonsibley