Как я могу сделать программно настраиваемую подсказку в какао (OS X)?

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

0
задан Jesús Mateos Gomez 3 March 2019 в 13:47
поделиться

1 ответ

Мне нужно создать настраиваемое представление всплывающей подсказки для всех представлений моего проекта.

Для всех просмотров? Большинство приложений имеют множество представлений, о которых пользователь даже не знает - представления, используемые для хранения групп элементов управления и тому подобное. Так что было бы странно предлагать подсказки для каждого просмотра. Всплывающие подсказки обычно используются с компонентами интерфейса, которые на самом деле что-то делают , и их цель - рассказать пользователю, что это такое. Вот почему вы видите, что NSControl имеет методы для управления всплывающими подсказками, а NSView нет.

Какой лучший способ сделать это?

Во-первых, решите, действительно ли вы имеете в виду, хотите ли вы всплывающие подсказки для каждого вида, или же вы на самом деле просто хотите того же рода. подсказок, которые уже предлагает Какао, но нарисованы иначе. Если последнее, то вы можете создать подкласс каждого используемого вами элемента управления и переопределить draw(withExpansionFrame:in:) , чтобы нарисовать нужные подсказки.

Если вы действительно хотите всплывающие подсказки для каждого вида, вы можете лучше реализовать свою собственную систему. Одним из подходов может быть наличие какого-либо объекта в вашем приложении для отслеживания событий перемещения мыши . Вы можете запустить таймер для отслеживания прошедшего времени после каждого события перемещения мыши, при котором каждое новое событие отменяет действие старого таймера и запускает новое. Если таймер истекает, он может добавить вид, отображающий ваше пятиугольное представление «подсказка», в окно рядом с мышью.

0
ответ дан Caleb 3 March 2019 в 13:47
поделиться