Как дать заголовок окну NSPersistentDocument - PullRequest
0 голосов
/ 14 января 2009

У меня есть подкласс NSPersistentDocument. Я тоже переименовал окно. Но когда я запускаю приложение, я получаю заголовок окна приложения как «Без названия». Нет -setTitle: метода, который я могу использовать, чтобы изменить заголовок. Есть идеи, как мне это сделать?

Ответы [ 3 ]

3 голосов
/ 14 января 2009

Вы не меняете название, ваши пользователи делают это, сохраняя документы.

3 голосов
/ 14 января 2009

Вы установили заголовок, отправив setTitle: в окно?

Если так, то это неправильно. Вместо этого установите displayName документа. (Помните, NSPersistentDocument является подклассом NSDocument.)

0 голосов
/ 29 сентября 2009

Вы можете привязать заголовок окна к документу и использовать Key-Value-Observation для его обновления.

С помощью Interface Builder выберите «Окно» в MyDocument.xib и перейдите на вкладку «Привязки» в Инспекторе. Отметьте «Заголовок» для привязки к «Владельцу файла» и «Путь к ключу модели» для «Заголовок».

Затем в ваш подкласс NSPersistentDocument добавьте этот код

@interface MyDocument : NSPersistentDocument {
  NSString * _title;
}  
@end

@implementation MyDocument

//P All kinds of all your good stuff here

- (NSString *) title {
  return _title;
}

@end

Теперь, если вы хотите изменить заголовок окна, вы можете использовать KVO. Например

- (BOOL)readFromURL:(NSURL *)absoluteURL 
             ofType:(NSString *)typeName 
              error:(NSError **)outError {

  //P All your good code

  [self willChangeValueForKey:@"title"];
  _title = [absoluteURL lastPathComponent];
  [self didChangeValueForKey:@"title"];  

  //P More good code

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...