- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
来自 Apple's sample code和阅读 the docs我看不出配置 NSPathControl
的行为类似于例如Xcode 编辑器窗口中的“跳转栏”:
即让它代表一条路径(或其他类型的层次结构)并使路径的每个组件成为可点击的弹出窗口以导航层次结构..?
有人幸运地使用 NSPathControlDelegate
监听点击并在临时窗口中显示菜单来伪造这种行为吗?
似乎是一种常见的设计,人们甚至会期待一些 OSS 实现 - 但还没有这样的运气,但谷歌搜索......
最佳答案
我做了一个 NSPathControl 的子类,这样我就可以使用 mouseDown: 在正确的位置弹出组件单元格的上下文菜单。我还向菜单添加了一个委托(delegate),以根据需要创建更深层次的菜单。
- (void)mouseDown:(NSEvent *)event {
NSPoint point = [self convertPoint:[event locationInWindow] fromView:nil];
NSPathCell *cell = self.cell;
NSPathComponentCell *componentCell = [cell pathComponentCellAtPoint:point
withFrame:self.bounds
inView:self];
NSRect componentRect = [cell rectOfPathComponentCell:componentCell
withFrame:self.bounds
inView:self];
NSMenu *menu = [componentCell menuForEvent:event
inRect:componentRect
ofView:self];
if (menu.numberOfItems > 0) {
NSUInteger selectedMenuItemIndex = 0;
for (NSUInteger menuItemIndex = 0; menuItemIndex < menu.numberOfItems; menuItemIndex++) {
if ([[menu itemAtIndex:menuItemIndex] state] == NSOnState) {
selectedMenuItemIndex = menuItemIndex;
break;
}
}
NSMenuItem *selectedMenuItem = [menu itemAtIndex:selectedMenuItemIndex];
[menu popUpMenuPositioningItem:selectedMenuItem
atLocation:NSMakePoint(NSMinX(componentRect) - 17, NSMinY(componentRect) + 2)
inView:self];
}
}
- (NSMenu *)menuForEvent:(NSEvent *)event {
if (event.type != NSLeftMouseDown) {
return nil;
}
return [super menuForEvent:event];
}
关于objective-c - NSPathControl 与路径的每个组件的弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12708715/
当NSPathControl 用于表示本地机器上的路径时就可以了! 当我尝试表示远程服务器的虚拟路径时,问题出现了;在这种情况下,我必须相应地更改图标。 图片代表我得到的,不是我喜欢的。 现在的问题是
我的项目是一个基于文档的应用程序。我想使用 NSPathControl 对象在启动时显示打开文档的路径。 我将在此处插入代码: - (void)windowControllerDidLoadNib:(
我正在尝试自定义 NSPathControl(自定义外观、项目菜单),但经过几个小时后,我无法实现我想要的。您知道表示路径的替代控件吗? 预先感谢您的帮助, 问候, 最佳答案 您可以将一些自定义按钮与
我正在使用 cocoa 开发一个应用程序,但我遇到了 NSPathControl 的问题。 我将控件的样式设置为 Popup,当我启动应用程序并单击路径控件时,它会显示一个弹出菜单,其中包含我设置的
我想制作一个自定义的NSPathControl。NSPathCell 具有方法 + pathComponentCellClass,您可以在其中返回组件单元格的自定义类。我有一个 NSPathCompo
我在使用 NSPathControl 和自动布局时遇到一些问题。 我希望路径控件随窗口调整大小。这意味着,如果我扩大窗口的宽度,NSPathControl 也应该扩大。这有效。 现在的问题是,如果我将
请看这张图片: 我知道如何更改文本颜色: NSPathComponentCell *cell = [_pathControl pathComponentCells].firstObject;
我正在寻找一种方法来将 NSPathControl 的路径设置为“~/Desktop”。 最佳答案 [_pathControlOutlet setURL: [NSURL URLWithString:
来自 Apple's sample code和阅读 the docs我看不出配置 NSPathControl 的行为类似于例如Xcode 编辑器窗口中的“跳转栏”: 即让它代表一条路径(或其他类型的层
我正在与 NSPathControl 搏斗。具体来说,我有一个对话框(由 NIB 生成),要求用户提供标题和路径。该路径应该是用户硬盘上的本地路径。因此,在 Xcode 4 中,我拖入了一个 NSPa
iOS (iPhone/iPad) 上是否有一个控件可以像 OSX 中的 NSPathControl 一样工作? (要在事件上动态地将节点添加到根,这可以返回,在事件上删除节点...) 最佳答案 据我
我有带有弹出样式的NSPathControl。当我尝试选择其他“预定义”位置时 - 没有发生任何变化。 示例: -------------choice...-------------Some macB
Apple 将 NSPathControl 更改为与 Yosemite 中的 NSPathControlItem 一起使用。 但从我的角度来看,这些新类(class)根本不起作用。我试图在我的数据结构
我需要使用 NSBrowser 中当前选定的路径更新 NSPathControl,但我无法找到一种方法,以便在 NSBrowser 中的路径发生更改时获取通知。执行此操作的理想方法是观察 NSBrow
主题说的是全部。 我在 IB 中创建了一个带有占位符消息的 NSPathControl。运行应用程序,出现占位符文本。 然后,我将控件的值绑定(bind)到 Controller 的 NSURL* 属
我是一名优秀的程序员,十分优秀!