К сожалению, нет единого решения, которое бы работало для всех элементов управления и ячеек. Вы должны быть в состоянии получить хорошее приближение к этой информации с помощью этих методов:
-[NSCell titleRectForBounds:]
-[NSCell font]
-[NSFont ascender]
Вот код, который работает для NSButton / NSButtonCell
NSRect titleRect = [[button cell] titleRectForBounds:[button bounds]];
CGFloat baseline = ceil(NSMinY(titleRect) + [[[button cell] font] ascender]);
В этот момент базовая линия находится в координатном пространстве кнопки (в границах). Вы можете преобразовать его в другое пространство с помощью - [NSView convertPoint: toView:];
Кроме того, этот «потолок» есть в приближении. Не все элементы управления будут делать это. Кто-то может пол или использовать другую функцию округления. Или они могут расположить заголовок совершенно иначе, и это приближение не сработает.