我有两个简短的问题:
如果有人可以帮助我会很好!
这是我到目前为止的源代码,但我不知道如何继续:
调用WindowController的方法:
- (IBAction)openPreferences:(id)sender
{
[NSApp activateIgnoringOtherApps:YES];
if (NULL == preferences)
{
preferences = [[PreferencesController alloc] initWithWindowNibName:@"Preferences"];
}
[preferences showPreferenceWindow];
}
这是PreferencesController的标头:
#import <Foundation/Foundation.h>
@interface PreferencesController : NSWindowController <NSWindowDelegate>
- (void)showPreferenceWindow;
@end
这是PreferencesController的主要内容:
#import "PreferencesController"
@interface PreferencesController()
@end
@implementation PreferencesController
- (void)windowWillClose:(NSNotification *)notification
{
}
// display the preference window
- (void)showPreferenceWindow
{
[self.window makeKeyAndOrderFront:NSApp];
// TODO: window should be focused and if the user press the close button it should be displayed again
}
- (void) dealloc
{
[super dealloc];
}
@end
答案 0 :(得分:3)
NSWindow有这个方便的方法- (void)setReleasedWhenClosed:(BOOL)releasedWhenClosed
。将其设置为NO,您的窗口可以无限次打开。关于你的焦点问题:它应该已经在努力使你的窗口成为焦点。
但是因为你正在使用偏好窗口:我可以建议DBPrefsWindowController它已经很老了,但它今天仍然有效。