В macOS 11 Apple представила новый NSToolbarItem под названием NSSearchToolbarItem
, который автоматически изменяет размер, чтобы приспособиться к вводу текста, когда фокус переключается на элемент панели инструментов.
Здесь Apple говорит, что это обратно совместимо со старыми версиями macOS: https://developer.apple.com/wwdc20/10104 (11:50 минут)
Однако запуск моего приложения с помощью NSSearchToolbarItem
из построителя интерфейса в macOS 10.13 (High Sierra) приводит к сбою моего приложения со следующей информацией о приложении:
*** Завершение работы приложения из-за необработанного исключения 'NSInvalidUnarchiveOperationException', причина: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: невозможно декодировать объект класса (NSSearchToolbarItem) для ключа (NS.objects); класс может быть определен в исходном коде или в несвязанной библиотеке, что завершается необработанным исключением типа NSException.
Запуск 10.15 работает нормально. Я еще не смог протестировать 10.14.
Обновление 6 от 21 июля, автор Томас Темпельманн
Оказывается, это была ошибка в более старых версиях Xcode 12, и теперь она исправлена в Xcode 12.5.1.
Я открыл награду, потому что у меня была, казалось бы, связанная проблема с неправильным размером NSSegmentedControls внутри панели инструментов при работе в High Sierra, но оказалось, что это отдельная проблема (которую можно исправить, вручную сбросив minSize
и maxSize
в элемент управления frame.size
).
Поэтому решение состоит в том, чтобы использовать Xcode 12.5.1 или более позднюю версию.
image lookup -rn NSSearchToolbarItem
показывает, чтоNSSearchToolbarItem
существует в AppKit 10.15, но не в 10.13. - person Willeke   schedule 09.11.2020NSToolbarItem
наNSSearchField
. Но очевидно, что это не так. - person Daniel   schedule 09.11.2020