В Swift NSMutableArray
не поддерживает генерики. Также в Swift мы избегаем передачи изменяемых данных между методами. Поэтому лучше всего сделать это в Swift, чтобы сохранить информацию о вашем типе:
@objc
func someArray() -> [String] {
return ["Hello"]
}
, а затем сделать изменяемую копию в Objective-C:
NSArray<NSString *> *array = [someClass someArray];
NSMutableArray<NSString *> *mutableArray = [array mutableCopy];
[mutableArray addObject:@"Hello again!"];
каков Ваш вопрос? Как добавить кнопку к строке списка?
Очень простой, так же, как Вы ожидаете, что это будет добавлено к расположению строки.
К сожалению, хотя это также сделает целую строку "неприкосновенной". Разработчик Google, которого я спросил, сказал, что это дизайном (насколько я помню), и что необходимо использовать TouchDelegate для преодоления этого. Как нет никаких образцов, даже в источнике андроида и только очень тонкой документации, которая не работала на меня
Так или иначе кажется, что не много приложений используют кнопку в строке списка. Я только знаю о моем (newsrob, см. Список Статей), и Будильник. Возможно, Вы могли использовать контекстное меню?
Иначе ужасное решение состояло бы в том, чтобы добавить к вызову setOnClickListener () на Вашем представлении строки в getView методе.
Удачи
Это не ответ на Ваш вопрос, но long-click/tab обычно является местом для появления, контекстное меню и помещать дополнительные действия, как удаляют. Можно читать, как сделать это здесь: Как Вы реализуете контекстное меню в ListActivity на Android?
Как сказал Мариано Камп, добавление кнопок в строку сделает ее «неприкосновенной», но, по моему опыту, эта проблема исчезнет, если вы установите эти свойства на кнопки:
android:focusable="false"
android:focusableInTouchMode="false"
См. также Как активировать onListItemClick в Listactivity с кнопками в списке?