Мне нужно отправить щелчок мыши на мой NSView
.Документация говорит о NSEvent +mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:
функции.Но я не могу найти информацию, как именно это использовать.Какие значения timestamp
, eventNumber
и clickNumber
следует использовать?Также нет типа для события click .Существуют типы для событий мыши и мыши.Отправляю ли я их обоих в один момент?Или я должен сделать некоторую задержку?В настоящее время я пытаюсь использовать такой код.
// self.label is NSTextField
[self.label setAllowsEditingTextAttributes: YES];
[self.label setSelectable: YES];
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"Google"];
[str addAttribute: NSLinkAttributeName value: @"http://www.google.com" range: NSMakeRange(0, str.length)];
[self.label setAttributedStringValue:str];
NSEvent *mouseEvent;
mouseEvent = [NSEvent mouseEventWithType:NSLeftMouseDown
location:NSMakePoint(0., 0.)
modifierFlags:0
timestamp:0
windowNumber:0
context:nil
eventNumber:0
clickCount:1
pressure:1.];
[self.label mouseDown:mouseEvent];
mouseEvent = [NSEvent mouseEventWithType:NSLeftMouseUp
location:NSMakePoint(0., 0.)
modifierFlags:0
timestamp:0
windowNumber:0
context:nil
eventNumber:0
clickCount:1
pressure:1.];
[self.label mouseUp:mouseEvent];
Кажется, это работает.Но после такого щелчка при перемещении указателя мыши к метке указатель мыши не отображается как рука (для открытия URL).URL моей первоначальной проблемы не отображается в NSTextField
как URL.Это выглядит как обычный текст.После нажатия на любое место в ярлыке (не ссылка) текст подсвечивается.Поэтому я хочу сделать клик программно после NSWindow
, показывающего, как применить обходной путь клика.
PS На самом деле первоначальный вопрос с URL в NSTextField
решен.Я переписываю свой код, чтобы использовать NSTextView
вместо NSTextField
.Он полностью работал, как и ожидалось, но требует дополнительной настройки.Также IB автоматически создает NSScrollView
для NSTextView
.В любом случае вопрос о правильном создании NSEvent
и отправке по-прежнему актуален.