如何在新的分段控件中设置“id”?

我该如何在newSegmentedControl中设置id

我尝试了以下代码,但是target.id始终为nil

    local function onSegmentPress( event )
        local target = event.target

        print( "Segment Label is:", target.segmentLabel )
        print( "Segment Number is:", target.segmentNumber )
        print( "id:", target.id )
    end

    local segmentedControl = widget.newSegmentedControl
    {
        id = "myID",
        left = 0,
        top = b.y - 13,
        segmentWidth = 60,
        segments = s,
        defaultSegment = 1,
        onPress = onSegmentPress
   }
点赞
用户869951
用户869951

似乎ID是为了小部件而不是小部件中的单个按钮,事件目标是实际的按钮,不包含ID。

使ID可用于处理程序的简单方法是创建一个闭包:

function genOnPressHandler(segmentId)
    return function (event)
        print("Segment Control id=", segmentId, "的其中一个按钮被按下")
        return true -- 表示成功触摸
    end
end

local segment = widget.newSegmentedControl{
    id = "myID",
    left = 0,
    top = 50,
    segmentWidth = 60,
    segments = {"seg 1", "seg 2", "seg 3"},
    onPress = genOnPressHandler("myID") -- 返回具有控件ID的闭包
}
2014-03-26 07:48:40