Кто владеет NSWindowController в общепринятой практике?

Я добавлю свои собственные два цента к этому вопросу:

я использую следующий SVN, игнорируют шаблон с TortoiseSVN и Подрывной деятельностью CLI для собственного C++, C#/VB.NET и проектов Perl и в Windows и в платформах Linux. Это работает хорошо на меня!

Отформатированный для копии и вставки:

*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk *.msi* .res *.pch *.suo *.exp *.*~ *.~* ~*.* cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj *.csproj.user *.user *.generated.cs

Отформатированный для удобочитаемости:

*.o *.lo *.la #*# .*.rej *.rej
.*~ *~ .#* .DS_Store thumbs.db 
Thumbs.db *.bak *.class *.exe *.dll
*.mine *.obj *.ncb *.lib *.log 
*.idb *.pdb *.ilk *.msi* .res *.pch *.suo 
*.exp *.*~ *.~* ~*.* cvs  CVS .CVS .cvs  
release Release debug Debug
ignore Ignore bin Bin obj  Obj
*.csproj.user *.user
*.generated.cs
12
задан Community 23 May 2017 в 12:00
поделиться

1 ответ

Похоже, ваше окно модальное, и в этом случае:

[NSApp runModalForWindow:[editorController window]];
[editorController release];

Вот один шаблон для немодальных окон:

@implementation QLPrefWindowController

+ (id) sharedInstance
{
    if (!_sharedInstance)
    {
        _sharedInstance = [[QLPrefWindowController alloc] init];
    }
    return _sharedInstance;
}

- (void)windowWillClose:(NSNotification *)notification
{
    if ([notification object] == [self window] && self == _sharedInstance)
    {
        _sharedInstance = nil;
        [self release];
    }
}

Тогда любой, кто хочет получить доступ или отобразить окно, может сделать это через + sharedInstance метод класса. Если окно еще не отображается, оно создается, в противном случае они получают окно, видимое в данный момент.

5
ответ дан 2 December 2019 в 23:31
поделиться