|Jun 15, 2009, 04:20 AM||#1|
Close NSAlert after some time using Timer
I want to close a alert Window (NSAlert) after specific period of time if user
does not click on any of the buttons.
Is there a way to set up a NSTimer to close the Alert Panel after 10 secs.
I am doing following thing and its working. But I know this wrong way to do this.
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert addButtonWithTitle: @"OK"];
[alert setMessageText: @"Attention!!! This a critical Alert."];
[alert setAlertStyle: NSInformationalAlertStyle];
NSTimer *myTimer = [NSTimer timerWithTimeInterval: 5
[[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSModalPanelRunLoopMode];
int choice = 0;
choice = [alert runModal];
if(choice != 0)
-(void) killWindowNSTimer *) theTimer
[[alert window] close];
Can anyone please suggest the best way to do this.
|Jun 15, 2009, 11:22 AM||#2|
Why do say you know it's wrong? You said it works, right? Only thing I can see is you set of for 5 seconds when you said you wanted 10.
Go outside, the graphics are amazing!
|Jun 16, 2009, 01:19 AM||#3|
Yeah, if it's working for you then I wouldn't bother changing it. Despite that, that's how I'd do it; an NSTimer controlling NSAlert.
Sometimes you have to just let code be code
- 13" rMBP - 2.6 GHz i5 - 512GB SSD - 8GB RAM
- Google Nexus 5
|Mar 22, 2013, 12:27 PM||#4|
I used this same code, but when I try to close with a timer, the rest of my app freezes. Also, if I try to do NSApp.stopModal to stop running Modal, the app crashes. Any ideas on the correct way to do this?
|Mar 22, 2013, 02:23 PM||#5|
I'd try abortModal instead of stopModal, that's what the documentation says. And your memory management seems dubious. [autorelease] should release the alert before the next round of the run loop, so by the time the timer fires, the alert should be gone. What does the static analyzer think of your code?
|Thread Tools||Search this Thread|
|thread||Thread Starter||Forum||Replies||Last Post|
|Reverting to 10.8 from mavericks via time machine- first timer questions||jkaz||OS X Mavericks (10.9)||5||Jan 13, 2014 12:02 AM|
|Shake:Time - gesture based iOS timer / flaaat||andrewPaw||iPhone and iPod touch Apps||1||Jun 25, 2013 02:04 PM|
|Is there a way to close LOTS of windows at the same time?||stanw||Mac OS X 10.7 Lion||1||May 22, 2013 10:15 PM|
|It's got to be close to time to switch if you need power||lloyd709||Mac Pro||13||Dec 14, 2012 05:50 PM|
|Issue with NSAlert text||arunsm||OS X||0||Aug 16, 2012 04:54 AM|
All times are GMT -5. The time now is 12:38 AM.