Путаница с popUpMenuPositionItem: atLocation: inView: - PullRequest
0 голосов
/ 17 декабря 2009

В документации по этому методу написано: «Всплывающее меню в указанном месте». но параметры, похоже, описывают разные ситуации:

item
The menu item to be positioned at the specified location in the view.

location
The location in the view coordinate system to display the menu item.

view
The view to display the menu item over.

Параметры, по-видимому, подразумевают, что вы будете отображать только MenuItem. Что на самом деле делает этот метод?

Ответы [ 3 ]

3 голосов
/ 17 декабря 2009

Для удобства вы можете установить координаты одного пункта меню. Ваше меню будет расположено вокруг этого единственного пункта меню.

Вы заметите, что именно так NSPopUpButton ведет себя: выбранный пункт меню всегда располагается прямо над кнопкой.

Если вы не хотите, чтобы ваше меню вело себя так, просто перейдите к самому верхнему пункту меню.

3 голосов
/ 17 декабря 2009

Я не знаю, как вы можете получить, что это может просто всплывающее меню - нет даже такого понятия, как всплывающее меню Нигде в описаниях параметров не говорится, что не будет отображаться всплывающее меню. Во всех описаниях параметров упоминается элемент, поскольку все они относятся к его позиционированию. Работает как документировано.

2 голосов
/ 17 декабря 2009

Вы что-то забываете: это сообщение, которое вы отправляете объекту меню.

На английском языке сообщение:

«Привет, меню! Выйди, расположи этот предмет в этом месте относительно этого вида. ”

Параметры описывают, где должно появиться все всплывающее меню , с точки зрения размещения определенного элемента из меню в определенном месте. Все меню отображается как всплывающее окно, а не только элемент позиционирования. Высовывать только один предмет было бы совершенно бесполезно.

Еще одна вещь: этот удобный метод был введен в Snow Leopard, поэтому, если вы нацеливаетесь на Leopard или ранее, вы не можете зависеть от него. Вам придется использовать другое решение, такое как NSPopUpButtonCell, которое я предложил в ответе на один из ваших предыдущих вопросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...