Czy jest jakiś sposób uzyskać rozmiar NSWindow (w pikselach) i wyświetlić go? Kiedy więc osoba zmieni rozmiar okna, tekst zmieni się i wyświetli nowy rozmiar.Uzyskaj rozmiar nswindow
Odpowiedz
W przypadku zastosowania metody
- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
na obiekcie można ustawić jako delegat oknie, będzie się nazywać, gdy okno zmiany rozmiaru. Stamtąd możesz zaktualizować pole tekstowe, którego używasz do wyświetlania rozmiaru.
Co o:
CGSize window_size = my_window.frame.size;
Zamiast próbować obsługiwać zmiany rozmiaru, należy zamiast tego upewnić się, że maski autouzupełniania widoków są ustawione poprawnie. W programie Interface Builder robisz to w Inspektorze rozmiaru (⌘3) z wybranymi widokami.
Jeśli opuściłeś całą hierarchię widoków bez ustawiania maski automatycznego naświetlania, masz przed sobą trochę nudy, ale nie jest to trudne (tylko żmudne) i nie potrwa długo. Dlatego powinieneś ustawić maski autoreize widoku podczas ich tworzenia.
Po ustawieniu maskowania automatycznego, widoki zmieniają się automatycznie; chyba że twój interfejs jest bardzo skomplikowany, lub dowolny widok może spaść do zera, nie musisz interweniować.
jak to pozwoli mi wyświetlić rozmiar przy użyciu NSTextField? –
Och, myślałem, że prosisz o rozmiar i zmieniasz swoje poglądy. Przepraszam. Popieram odpowiedź Kena. –
NSSize myNSWindowSize = [ [ myNSWindow contentView ] frame ].size;
... powinno być to, czego szukasz. Propozycja fbrereto jest tym, czego powinieneś użyć, jeśli chcesz mieć rozmiar, w tym pasek tytułu NSWindow.
Alternatywnie, zdobądź "ramkę" okna, a następnie wyślij do okna wiadomość 'contentRectForFrameRect:', aby ją przekonwertować. –
- 1. Programuj programowo rozmiar NSWindow
- 2. Uzyskaj rozmiar bitmapy Androida
- 3. Zapisz rozmiar NSWindow na zmianę rozmiaru i zamknij dla użytkownika
- 4. Native OSX Lion rozmiar kursora na zlecenie NSWindow lub NSView
- 5. Uzyskaj rozmiar terminala w Go
- 6. VB.Net - Uzyskaj rozmiar bajtu typu
- 7. Połóż przezroczysty NSWindow na stałe na innym NSWindow
- 8. Nadpisanie przycisku zamknięcia NSWindow
- 9. Dolny pasek w NSWindow
- 10. "Złóż" NSWindow używając CoreAnimation
- 11. NSWindow zwraca zero (NSApplication)
- 12. Jak ustawić przekątną NSWindow tylko w pionie?
- 13. Wskaźnik zmiany rozmiaru NSWindow nie jest widoczny
- 14. Uzyskaj rozmiar dużego obiektu w zapytaniu PostgreSQL?
- 15. Uzyskaj preferowany rozmiar wielowierszowego szablonu prezentacji
- 16. Uzyskaj rozmiar określonego repozytorium w Nexusie 3
- 17. Uzyskaj rozmiar odpowiedzi HTTP w Javie
- 18. Uzyskaj rozmiar std :: tablicę bez instancji
- 19. Uzyskaj rozmiar okna terminala (wiersze/kolumny)
- 20. ElasticSearch Uzyskaj indeksu nazw i przechowywać Rozmiar
- 21. Otwory w NSView lub NSWindow
- 22. Utwórz programowo NSWindow w Swift
- 23. Uzyskaj maksymalny rozmiar tekstury OpenGL ES 2.0 w systemie Android
- 24. Uzyskaj obliczony rozmiar czcionki dla elementu DOM w JS
- 25. Uzyskaj całkowity rozmiar dysku twardego w systemie C++ Windows
- 26. Uzyskaj rozmiar div z JS po transformacji CSS3
- 27. JavaScript - Uzyskaj rozmiar w bajtach z HTML img src
- 28. NSTextField nie można edytować w zwyczaju NSWindow
- 29. Jak sprawdzić, czy NSWindow jest widoczny?
- 30. jak zacząć NSWindow w pełnym ekranie
ok oto co mam: - (NSSize) windowWillResize: (NSWindow *) sendertoSize: (NSSize) frameSize { \t [długość setStringValue: @ "thisworks"]; \t [width setStringValue: @ "test"]; \t return; } (ciągi są testowane, aby upewnić się, że działa) Wszystko jest poprawnie połączone z IB, wszystko jest zapisane. Ale kiedy uruchamiam aplikację, po prostu pokazuje "label", nie mówi tego, co powiedziałem. –
Czy powyższy kod należy do delegata? Czy możesz zaktualizować swoje pytanie za pomocą kodu, który musisz podać więcej kontekstu? – fbrereto
jest w oknie delegata –