Кто-нибудь испытывал правила принятия Mac App Store при настройке поведения AppKit неподдерживаемым способом? - PullRequest
0 голосов
/ 29 июня 2019

В моем приложении Objective-C macOS я нашел способ изменить шрифт заголовков окон, вставив этот код в мой NSTitlebarAccessoryViewController:

- (void)viewWillLayout {

    NSView *superView = [[[self.view superview] superview] superview];

    for (id view in superView.subviews) {

        if ([view isKindOfClass:[NSTextField class]]) {

            NSTextField *titleLabel = view;
            NSString *title = titleLabel.stringValue;

            NSFont *font = [NSFont systemFontOfSize:12.0];

            NSAttributedString *smallTitle = [[NSAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:font}];

            titleLabel.attributedStringValue = smallTitle;
        }
    }
}

. Это работает очень хорошо.Считаете ли вы, что Apple может найти это неприемлемым, потому что оно попадает в запрещенные частные API?Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 29 июня 2019

Вы не должны делать это вообще.Apple не экспортировала этот API по уважительной причине: она хочет, чтобы мы, разработчики, использовали единый внешний вид, чтобы сохранить внешний вид ОС, знакомый пользователям.Чтобы понять, почему это важно, вам следует прочитать Руководство по интерфейсу пользователя от Apple.Таким образом, весьма вероятно, что ваше приложение будет отклонено из-за этого хака, если только у вас нет очень веской причины для этого.

1 голос
/ 29 июня 2019

Я думаю, что ваше приложение будет одобрено, но я бы не стал этого делать, потому что иерархия представлений недокументирована и может измениться даже при незначительном обновлении iOS.Кроме того, компоновка в NSTitlebarAccessoryViewController не гарантируется фиксированной, поэтому любые такие будущие изменения могут вызвать странные обрывы и другие артефакты, поскольку ваш шрифт отличается от исходного шрифта.

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