问题标签 [nspathcontrol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
445 浏览

cocoa - NSPathControl 在绑定到字符串时不会转义百分比('%')字符的事实是错误吗?

脚步:

环境:OS X 10.6.4 Xcode 3.2.1

  1. 创建一个新的“应用程序”项目。
  2. 打开提供的应用程序委托。
  3. 添加NSString *属性。
  4. -applicationDidFinishLaunching:将字符串属性设置为@"/TestString%".
  5. 打开笔尖。
  6. NSPathControl拖到应用程序窗口上。
  7. NSPathControl的值绑定绑定到在步骤 3 中创建的属性。
  8. 运行应用程序
  9. 查看控制台。

您应该看到以下断言,并且路径控件不会显示:

如果您在第 4 步中从字符串中删除百分号,则断言将消失,路径控件将正确显示。

我尝试了以下字符,但没有一个会导致相同的问题(确保转义双引号和反斜杠):

在进行了一些调试之后,我将其追踪到了支持百分比转义的这种方法。例如,如果您使用字符串@"/Test%20string",结果将显示“测试字符串”,将 %20 转换为空格字符。

我还没有在任何地方发现这种行为。我错过了吗?

我遇到了这个问题,因为我-[NSBrowser path]用来镜像浏览器的路径NSPathControl。如果选定的浏览器单元格的内容包含一个 % 符号,则整体NSPathControl将失败(QA 非常适合显示此类内容 - 非常感谢他们)。

我最好的猜测是它试图将字符串转换为NSURL内部的字符串,但返回 nil 失败,从而触发了异常。如果您在字符串中省略前导 / 您会看到以下消息,这一事实进一步强化了这一点:

但这仍然缺少一些东西,因为-initWithScheme:host:path:被记录为添加所需的百分比转义,并且那些可能正在调用-initWithScheme:host:path:但未记录为添加转义的方法(例如-initWithString)被记录为需要对不会导致问题的字符进行转义,即:, /, #, ;, 和@.

我打算向 Apple 提交一个关于它的错误,但我想在某个地方记录这个问题,并确保我不会首先遗漏任何东西。


对于任何发现此问题并寻找解决方案的人,我的解决方案是手动实现绑定到 NSPathControl 的属性的 getter,以使用-stringByAddingPercentEscapesUsingEncoding:and返回转义字符串NSUTF8StringEncoding


由于没有人提出任何意见,因此我继续向 Apple 提交了此文件。rdar://8452431。

0 投票
1 回答
1534 浏览

objective-c - 获取 NSPathControl 选定文件的完整路径

我的应用程序中有一个 NSPathControl 供用户选择他的硬盘上的文件。

我正在尝试使用

但这仅输出文件名。如何获取文件的完整路径?

提前致谢!

0 投票
1 回答
637 浏览

cocoa - 下拉 nspathcontrol

有没有办法让默认的 NSPathControl 像 xcode 4 一样下拉?默认情况下,我的意思是没有子类化

替代文字

0 投票
2 回答
687 浏览

objective-c - NSPathcontrol 替代方案

我正在尝试自定义 NSPathControl(自定义外观,项目菜单),但经过数小时后,我无法实现我想要的。您知道表示路径的替代控件吗?

在此先感谢您的帮助,

问候,

0 投票
1 回答
3484 浏览

objective-c - 将包含 URL 的 NSString 转换为 POSIX 路径

在将文件或文件夹拖放到文件夹或文件之后,我正在检索文件夹或文件的 POSIX 路径NSPathControl

我是一个初学者,但我能够以Destination这种方式从我的代码中的控件(称为)中获取值:

这给了我类似的东西

但我希望它采用 POSIX 路径形式:

为我需要将它传递给NSTask正在运行的命令行程序。

关于如何将其内容NSString从 URL 格式转换为 POSIX 路径的任何建议?

0 投票
2 回答
1504 浏览

objective-c - 如何使 NSPathControl 看起来像其他下拉框?

我正在和 搏斗NSPathControl。具体来说,我有一个对话框(由 NIB 生成),它要求用户提供标题和路径。该路径应该是用户硬盘上的本地路径。所以,在 Xcode 4 中,我拖入了一个NSPathControl. 在属性检查器中,我将其样式设置为“弹出”。

这几乎像我预期的那样工作。如果我单击它,我会得到一个菜单,其中包含一些常见路径或与当前选择相关的路径,以及一个“选择...”选项,它会打开一个对话框并允许选择路径。

问题是,它看起来不像 Cocoa 下拉菜单,因为根本没有边框或按钮。我怎样才能使它看起来更像一个NSPopUpButton,这大概是有人所期望的。

或者,我是 Cocoa 的新手,并且愿意被告知我正在以错误的方式解决这个问题。如果我以错误的方式进行操作,那么让用户选择路径的更好方法是什么?

这是我正在尝试做的一个例子:

例子

看到路径下拉菜单了吗?我本来希望它看起来像其中之一......

落下

...但是,也就是说,我正在尝试编写一个表现良好的 Cocoa 应用程序,所以我真正想要的是,“这样做的正确方法是什么?” 提前致谢。

0 投票
1 回答
979 浏览

objective-c - NSPathControl problems

I have an application I'm developing in cocoa, and I have a problem with NSPathControl.

I set the style of the control to Popup, and when I launch my App and click on the path control, it shows me a popup menu with the components of the URL I set. I.e., for URL like file://localhost/Applications/Games/ it shows me the following: My Macbook, Macintosh HD, Applications, Games.

Now, when I click on Applications, I receive an action, and whithin that action [[sender clickedPathComponentCell] URL] returns correct URL: file://localhost/Applications/.

Problem 1: But when I click on Macintosh HD, I get an URL with double trailing slash: file://localhost//.

Problem 2: is that I get the same URL file://localhost// when I click on My Macbook item. So, I have 2 questions:

  1. Why does the URL to Macintosh HD ends with double slash?

  2. How can I distinguish clicks on Macintosh HD and My Macbook, and what is the correct URL to My Macbook, where Finder shows the list of mounted volumes (on my macbook it is Macintosh HD and BOOTCAMP)?

I've examined the tutorial named "SourceView", but there was no item like My Macbook, so I was not able to find out, whether My Macbook is really exists as a some kind of virtual folder, or I should just use NSFileManager to get the list of mounted volumes.

0 投票
1 回答
334 浏览

objective-c - NSPathControl setDoubleAction 不起作用

NSPathControl在我的应用程序中添加了一个视图。在awakeFromNib我设置双击动作: -

不幸的是,双击PathControl 不起作用,虽然我首先测试了这个简单的独立测试应用程序。

我怀疑可能与其他元素有一些相互作用。特别是我有一个NSSplitView包含 aNSOutlineView和 a 的 a NSTableView,它们都具有 Double Click Target 绑定来分隔控制器中的选择器。

我不明白为什么这些会影响 NSPathControl。

如果我将NSPathControl选择器连接到 dClickPath: 然后单击 PathControl 即可。

0 投票
2 回答
1089 浏览

objective-c - NSPathControl 与路径的每个组件的弹出窗口?

Apple 的示例代码和阅读文档中,我看不到将其配置为与 Xcode 编辑器窗口中的“跳转栏NSPathControl”类似的行为:

Xcode Editor 自定义路径控件

即让它代表一个路径(或其他类型的层次结构)并使路径的每个组件成为可点击的弹出窗口以导航层次结构..?

有没有人幸运地通过NSPathControlDelegate听点击并在临时窗口中显示菜单来伪造这种行为?

似乎是一种常见的设计,人们甚至会期望一些 OSS 实现——但还没有这样的运气,还没有用谷歌搜索它..

0 投票
1 回答
150 浏览

ios - iOS 的 NSPathControl 等效项

iOS (iPhone/iPad) 上是否有像 OSX 中的 NSPathControl 一样工作的控件?(要动态地将节点添加到事件的根,可以返回,删除事件的节点......)