sub*_*iox 5 macos applescript nspopupbutton osx-mountain-lion
property myPopUp : missing value
on startbuttonpressed_(sender)
if myPopUp's selectedItem = "Item 1"
display dialog "This is Item 1"
else
display dialog "Failed"
end if
end startbuttonpressed_
Run Code Online (Sandbox Code Playgroud)
我成功编译了这段代码,但是虽然选择了"第1项",但我收到了"失败"的消息.
我认为我的错误是"myPopUp的selectedItem",但我不知道如何纠正它.
如何从NSPopUpButton获取所选项目?
sco*_*001 18
如果你看一下NSPopUpButton文档,你将能够看到你可以调用的所有方法以及它继承的方法.在Getting User Selection你的下面:
– selectedItem
– titleOfSelectedItem
– indexOfSelectedItem
– objectValue
Run Code Online (Sandbox Code Playgroud)
当然这些都是方法,所以如果你想获得所选值的索引,你可以调用如下:
set my_index to myPopup's indexOfSelectedItem()
Run Code Online (Sandbox Code Playgroud)
查看indexOfSelectedItem文档中的条目:
indexOfSelectedItem
Returns the index of the item last selected by the user.
- (NSInteger)indexOfSelectedItem
Return Value
The index of the selected item, or -1 if no item is selected.
Run Code Online (Sandbox Code Playgroud)
我们在顶部概述了函数,然后是函数的用法,最后是返回值的描述.这告诉我们indexOfSelectedItem不采取任何参数(如果它做了它会看起来像- (NSInteger)indexOfItemWithTitle:(NSString *)title).左边的返回值将是NSInteger,而不是 Applescript Integer.虽然Applescript可能能够以同样的方式对待它,但在某些情况下,这可能会给你带来麻烦.解决方案是永远不要像处理AS字符串那样处理NSString,也不要像处理AS Integer那样处理NSInteger.要进行转换,我们必须将其更改为AS字符串,然后更改为AS整数:
set my_index to ((myPopup's indexOfSelectedItem()) as string) as integer
Run Code Online (Sandbox Code Playgroud)
因此,对于您的代码,如果看起来像你可以使用indexOfSelectedItem 或 titleOfSelectedItem
| 归档时间: |
|
| 查看次数: |
8100 次 |
| 最近记录: |