2013-07-07 4 views
2

Я не могу понять, почему лист не является модальным, и фокус все еще находится в главном окне.лист какао не модальный

- (IBAction) showSheet:(NSWindow*)window 

{ // Пользователь попросил, чтобы увидеть диалоговое окно. Отобразите его.

if (!_clientsDialog) 
     [NSBundle loadNibNamed: @"clientsDialog" owner: self]; 
     [NSApp beginSheet:self.clientsDialog 
      modalForWindow: [[NSApp delegate]window] 
      modalDelegate: self 
      didEndSelector: NULL 
       contextInfo: NULL]; 

}

+0

попробуйте добавить сообщение журнала, чтобы увидеть, если лист (self.clientsDialog) является NULL ... – d00dle

+0

Как, что метод? – user2414590

+0

NSLog (@ "% @", self.clientDialog); поместите эту строку в начало метода showSheet. Если он пишет (null), у вас возникла проблема с подключением к листу. – d00dle

ответ

4

Следующий метод работает для меня:

Header File:

- (IBAction)showSheet:(id)sender; 

Метод файла:

- (void)showSheet:(id)sender { 

    if (! _clientsDialog) 
     [NSBundle loadNibNamed: @"clientsDialog" owner: self]; 

    [NSApp beginSheet: _clientsDialog 
     modalForWindow: [[NSApp delegate] window] 
     modalDelegate: self 
     didEndSelector: NULL 
      contextInfo: NULL]; 
} 

ВАЖНО: Вы должны иметь Заголовок Bar на вашем окне. В противном случае элементы управления не будут работать.

enter image description here

+1

Я не могу поверить, что это так! Теперь все работает! Большое спасибо! – user2414590

+0

как? Я новичок здесь – user2414590

+1

В верхней части моего ответа есть 2 стрелки. Один вверх и один вниз. Стрелка вверх указывает, вы должны сделать это, чтобы проголосовать за этот ответ. Если вопрос у вас есть, также есть пустое принимающее изображение. Нажмите его, чтобы принять ответ (он становится зеленым, когда вы его приняли). – d00dle

Смежные вопросы