Как я вызываю метод каждые х секунд? - PullRequest
0 голосов
/ 26 февраля 2011

У меня есть NSWindow, которое я перевожу в полноэкранный режим. Я хотел бы иметь возможность скрыть мышь, когда она не используется (скажем, через 15 секунд после ее последнего использования). У меня есть мой делегат приложения следующим образом:

MyMediaRoomAppDelegate.h:

#import <Cocoa/Cocoa.h>

@interface MyMediaRoomAppDelegate : NSResponder <NSApplicationDelegate> {
    NSWindow *window;
    NSDate *lastMouseMove;
}

@property (assign) IBOutlet NSWindow *window;
@property (nonatomic, retain) NSDate *lastMouseMove;

@end

MyMediaRoomAppDelegate.m:

#import "MyMediaRoomAppDelegate.h"

@implementation MyMediaRoomAppDelegate

@synthesize window;
@synthesize lastMouseMove;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // The application has just finished lanching

    // Grab the screen size
    NSRect screenRect;
    screenRect = [[NSScreen mainScreen] frame];

    // Setup the window - full screen
    [[self window] setLevel:NSMainMenuWindowLevel+1];
    [[self window] setStyleMask:NSBorderlessWindowMask];
    [[self window] setOpaque:YES];
    [[self window] setBackgroundColor:[NSColor blackColor]];
    [[self window] setFrame:screenRect display:YES animate:NO];

    // Setup the mouse
    [[self window] setAcceptsMouseMovedEvents:YES];
    [[self window] makeFirstResponder:self];
    [NSCursor hide];
}

- (BOOL)acceptsFirstResponder
{
    return YES;
}

- (void)mouseMoved:(NSEvent *)theEvent
{
    [NSCursor unhide];
    [self setLastMouseMove: [NSDate date]];
}

@end

В чем я не уверен, так это в том, как повторно скрыть курсор через 15 секунд. Дело в том, что мне нужно проверять setLastMouseMove каждую секунду или около того, а не просто вызывать [NSCursor hide] через 15 секунд.

1 Ответ

1 голос
/ 26 февраля 2011

Попробуйте NSTimer . Вы можете указать, что это будет повторяться во время создания.

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