【发布时间】:2012-01-02 15:47:46
【问题描述】:
我正在尝试使用UISegmentedControl 来控制我的表格的排序顺序,特别是我想在已经选择的段上注册一个点击(以反转我的排序)。因此,每当点击任何段时,我都会尝试引发 UIControlEvent.ValueChanged 事件。
我已经从UISegmentedControl 覆盖了SelectedSegment,并在xcode 中为我的元素使用了这个自定义类,但是,当点击Segment 控件时,似乎没有调用此代码(它是 在视图加载时调用(尽管 =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 register taps on selected segment 提出过,但是这个问题是针对 ObjC 的,而这个问题是针对 C#/Monotouch 的。
【问题讨论】:
标签: c# iphone ios xamarin.ios uisegmentedcontrol