расположение кнопки / текстового поля в представлении в какао - PullRequest
0 голосов
/ 14 июня 2011

Извините, что задаю такой вопрос, но я не могу найти ответ на него из дикой сети.

Я хочу узнать местоположение NSTextField в моем пользовательском представлении, чтобы я мог программно добавлять в него другие текстовые поля. Причина, по которой я не просто добавляю другие текстовые поля в IB, заключается в том, что мне нужно иметь возможность динамически создавать их. NSTextField связан с IBOutlet.

Итак, главный вопрос: Как узнать местоположение NSTextField (или NSButton, на самом деле это не имеет значения) в пользовательском представлении (Мне нужно получить координаты предмета)?

Ответы [ 3 ]

1 голос
/ 14 июня 2011

Создайте переменную экземпляра с помощью NSTextField и затем вызовите эти методы для получения четырех значений, которые вы хотите.

NSRect textFieldFrame = [textField frame];

NSPoint textFieldLocation = textFieldFrame.origin;
NSSize textFieldSize = textFieldFrame.size;

NSInteger x = textFieldLocation.x;
NSInteger y = textFieldLocation.y;

NSInteger width = textFieldSize.width;
NSInteger height = textFieldSize.height;
0 голосов
/ 14 июня 2011

Каждый вид или элемент управления (например, NSButton, NSTextField и т. Д.), Который наследуется от NSView, имеет метод -frame, который содержит информацию о позиционировании.

Если к вашему пользовательскому представлению подключено IBOutlet до NSTextField, вы можете сделать следующее:

NSRect textFieldFrame = [textField frame];

То, что NSRect содержит всю информацию о том, где расположено текстовое поле.

См. Следующие 2 руководства для получения дополнительной информации:

Руководство по программированию представления: представление о рамке и границах представления

Руководство по рисованию какао: системы координат и преобразования

0 голосов
/ 14 июня 2011

Любое представление имеет свойство bounds и frame.bounds - это прямоугольник, который охватывает вид в собственном координатном пространстве этого вида;frame - это вмещающий прямоугольник в координатном пространстве суперпредставления.В этом случае вам понадобится рамка текстового представления, то есть его расположение и размер в представлении, которое его содержит, чтобы вы могли найти другие текстовые представления в том же суперпредставлении.

...