Когда требуется атрибут Register в приложениях Xamarin.iOS?
-
20-12-2019 - |
Вопрос
Когда именно состоится Register
атрибут, необходимый в приложении Xamarin.iOS?
Я нашел существующая должность это дает некоторое объяснение того, что он делает, но я не совсем понимаю, когда это необходимо.
Я написал довольно обширное приложение, не прибегая к принудительному использованию Register
на любом из моих UIViewController
или UIView
подклассы.
В моем случае я делаю весь свой макет из кода на C#, так что нет xib
файлы, которые необходимо найти.Это звучит как один из вариантов использования для Register
взаимодействует с представлениями, созданными в Interface Builder.
Кто-нибудь может пролить немного света на это?
Решение
Всякий раз, когда среде выполнения ObjectiveC потребуется создать экземпляр управляемого типа, его необходимо будет зарегистрировать.Если вы создаете свои пользовательские представления и контроллеры из кода, у вас не так много необходимости в их использовании, если таковая вообще имеется.Если вы планируете создавать какие-либо повторно используемые элементы пользовательского интерфейса, вам следует зарегистрировать их, чтобы кто-то, использующий редакторы макетов, мог их использовать.Допустим, вы создаете пользовательский UIView с именем MyView и регистрируете его, вы можете перетащить элемент управления UIView в контроллер представления в XCode и изменить его тип на MyView вместо UIView.Он по-прежнему не будет отображаться в редакторе XCode, но он будет создан как MyView во время выполнения, в противном случае он был бы создан как UIView.
Другие советы
Любой объект, производный от NSObject, будет автоматически экспортирован в Objective-C, технически нет необходимости в атрибуте [Register].
Однако этот атрибут полезен, если вы хотите, чтобы имя Objective-C отличалось от значения по умолчанию:
[Register ("MyObject")]
class MyCustomObject : NSObject
{
}
Это позволило бы зарегистрировать управляемый MyCustomObject
введите с помощью Objective-C, используя MyObject
как родное название.