sie*_*ied 5 macos cocoa objective-c rubymotion
我是 OSX 开发的初学者,所以我希望我的问题能在这里找到解决方案。
我的NSTokenField应用程序中有一个,我实现了该tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:方法。
一切正常,但目前的结果是这样的:

我想要的是让它看起来像这样:(类似于邮件应用程序中的完成)

这意味着我希望完成列表采用所有 NSTokenField 宽度。使用Accessibility Inspector,我可以看到与第一个 sreenshot 对应的层次结构是:
AXScrollArea -> AXList -> AXTextField
而对应于第二个屏幕截图的是:
AXScrollArea -> AXTable -> AXRow:AXTableRow -> AXTextField
所以我想我必须使用 anNSTableView来显示完成列表,但我不知道如何实现。有谁知道这怎么可能?
在此先感谢您的帮助。
编辑
至少有 2 人建议我实现该tokenField:menuForRepresentedObject:方法并使用适当的NSMenu属性定义菜单宽度。但是这个方法用于为给定的令牌定义一个菜单,我已经实现了它:
def tokenField(tokenField, menuForRepresentedObject:representedObject)
theMenu = NSMenu.alloc.initWithTitle("Email address context menu")
item_0 = theMenu.insertItemWithTitle('add_to_address_book'.localized, action:'add_to_address_book', keyEquivalent:"", atIndex:0)
item_0.setTarget(self)
item_1 = theMenu.insertItemWithTitle('new_message'.localized, action:'new_message', keyEquivalent:"", atIndex:1)
item_1.setTarget(self)
theMenu
end
Run Code Online (Sandbox Code Playgroud)
这给了我这样的东西:

很棒的东西,但不是我在这里问的。
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |