Я пытаюсь использовать UISegmentedControl
для управления порядком сортировки моей таблицы, в частности, я хочу зарегистрировать нажатие на уже выбранный сегмент (чтобы инвертировать мою сортировку). Таким образом, я пытаюсь вызвать событие UIControlEvent.ValueChanged
при каждом касании любого сегмента.
Я переопределил SelectedSegment
из UISegmentedControl
и использую этот настраиваемый класс для своего элемента в xcode, однако похоже, что этот код не вызывается при нажатии элемента управления «Сегмент» (он вызывается, когда представление загружается хотя = S).
[Register("ReselectableSegment")]
public class ReselectableSegment : UISegmentedControl
{
static Selector selInit = new Selector("init");
[Export("init")]
public ReselectableSegment()
: base(NSObjectFlag.Empty)
{
Handle = Messaging.IntPtr_objc_msgSend(this.Handle,
selInit.Handle);
}
public ReselectableSegment (IntPtr handle) : base(handle){}
public override int SelectedSegment
{
[Export ("SelectedSegment:")]
set {
if(this.SelectedSegment == value)
this.SendActionForControlEvents(UIControlEvent.ValueChanged);
base.SelectedSegment = value;
}
}
}
Этот вопрос задавался ранее по адресу: Регистр UISegmentedControl нажимает на выбранный сегмент, однако этот вопрос для ObjC, и этот вопрос для C # / Monotouch.