Bonjour à tous,
Ceci est la suite d'un de mes anciens posts dans lequel je demandais de l'aide pour une appli Java sous mac (https://www.developpez.net/forums/d2...o-webview-mac/).
La décision a été prise de changer le langage et d'utiliser Objective-c, ce qui semble logique pour un écran de veille sous mac.

L'écran de veille existe bien, il est basic et affiche bien la page que je veux.
Par contre, j'ai un soucis lorsque j'essaye de supprimer la sortie de l'écran de veille.
J'ai bien mis les handler sur mouseMoved et sur d'autres event mais cela n'empêche pas la sortie.

Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
- (void) mouseMoved: (NSEvent *) theEvent {
    // nada
}
 
- (void) mouseEntered: (NSEvent *) theEvent {
    // nada
}
 
- (void) mouseExited: (NSEvent *) theEvent {
    // nada
}
 
- (void) flagsChanged: (NSEvent *) theEvent {
    // nada
}
 
- (void) keyDown: (NSEvent *) theEvent {
    // nada
}


En cherchant un peu, j'ai trouvé un truc étrange : isPreview est toujours à true.
Je suppose que cela influe sur les event mais je n'en suis pas sur.
Voici la fonction de base de l'écran de veille pour que vous vous fassiez une idée.
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
- (id)initWithFrame<img src="images/smilies/icon_sad.gif" border="0" alt="" title=":(" class="inlineimg" />NSRect)frame isPreview<img src="images/smilies/icon_sad.gif" border="0" alt="" title=":(" class="inlineimg" />BOOL)isPreview
{
	if (isPreview) {
		NSLog(@"is Preview est à true");
	} else {
		NSLog(@"is Preview est à false");
	}
	self = [super initWithFrame:frame isPreview:isPreview];
	if (self) {
		saverURLString = "www.google.fr";
		[self setAnimationTimeInterval:-1];
		[NSCursor unhide];
	}
	return self;
}


Le résultat de tout ça est que le curseur de la souris est apparent (grace à NSCursor unhide), mais que je ne peux le bouger que sur une petite zone : surement la zone d'affichage des previews des écran de veille dans le panneau de configuration.
Donc ma question est : comment dois-je faire pour que le isPreview soit correctement à false? Ou si une autre donnée à fait son apparition, quelle est-elle et comment la traiter?

PS : Je précise que je suis sous macOS 10.15.5 (catalina) et que j'utilise Xcode 11.5.