开发者

How do I create a custom modal NSWindow?

开发者 https://www.devze.com 2023-02-25 06:54 出处:网络
I want to create a custom NSWindow that acts as a modal dialog. By custom I mean it has normal user controls in the window, with a \"OK\" and \"Cancel\" buttons. The dialog will contain read only info

I want to create a custom NSWindow that acts as a modal dialog. By custom I mean it has normal user controls in the window, with a "OK" and "Cancel" buttons. The dialog will contain read only information, and have a few checkboxes, secure edit fields, etc.

The MainMenu.xib file will have the normal Window visible at launch, plus include the custom NSWindow (which is NOT visible at launch).

I am trying to find example code to launch the window i开发者_开发知识库n modal mode (after the app initializes and launches main window), and on "OK" run a process, and on success of that process hide the dialog. Or on failure, keep the dialog up, but show an error sheet on the dialog.

Any help is appreciated, thanks.


You want to look at NSApplication’s -runModalForWindow: and/or -runModalSession: methods. Note that using modal windows is generally a bad idea and if it’s at all possible to avoid doing so, you should; that said, sometimes needs must.

As far as launching a process, waiting for it to finish and so on, you can probably do what you need with NSTask, although you don’t provide sufficient detail to be certain. You’d probably want to observe NSTaskDidTerminateNotification to tell you when the task had finished.

See

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/OperatingSystem/OperatingSystem.html

for more on NSTask and

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/UsingModalWindows.html%23//apple_ref/doc/uid/20000223-CJBEADBA

for more about modal NSWindow usage.


Have a look at NSApplication's -runModalForWindow: method, and "Using Application-Modal Dialogs."

0

精彩评论

暂无评论...
验证码 换一张
取 消