问题标签 [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.
cocoa - NSPathControl 在绑定到字符串时不会转义百分比('%')字符的事实是错误吗?
脚步:
环境:OS X 10.6.4 Xcode 3.2.1
- 创建一个新的“应用程序”项目。
- 打开提供的应用程序委托。
- 添加
NSString *
属性。 - 在
-applicationDidFinishLaunching:
将字符串属性设置为@"/TestString%"
. - 打开笔尖。
- 将
NSPathControl
拖到应用程序窗口上。 - 将
NSPathControl
的值绑定绑定到在步骤 3 中创建的属性。 - 运行应用程序
- 查看控制台。
您应该看到以下断言,并且路径控件不会显示:
如果您在第 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。
objective-c - 获取 NSPathControl 选定文件的完整路径
我的应用程序中有一个 NSPathControl 供用户选择他的硬盘上的文件。
我正在尝试使用
但这仅输出文件名。如何获取文件的完整路径?
提前致谢!
cocoa - 下拉 nspathcontrol
有没有办法让默认的 NSPathControl 像 xcode 4 一样下拉?默认情况下,我的意思是没有子类化
objective-c - NSPathcontrol 替代方案
我正在尝试自定义 NSPathControl(自定义外观,项目菜单),但经过数小时后,我无法实现我想要的。您知道表示路径的替代控件吗?
在此先感谢您的帮助,
问候,
objective-c - 将包含 URL 的 NSString 转换为 POSIX 路径
在将文件或文件夹拖放到文件夹或文件之后,我正在检索文件夹或文件的 POSIX 路径NSPathControl
。
我是一个初学者,但我能够以Destination
这种方式从我的代码中的控件(称为)中获取值:
这给了我类似的东西
但我希望它采用 POSIX 路径形式:
为我需要将它传递给NSTask
正在运行的命令行程序。
关于如何将其内容NSString
从 URL 格式转换为 POSIX 路径的任何建议?
objective-c - 如何使 NSPathControl 看起来像其他下拉框?
我正在和 搏斗NSPathControl
。具体来说,我有一个对话框(由 NIB 生成),它要求用户提供标题和路径。该路径应该是用户硬盘上的本地路径。所以,在 Xcode 4 中,我拖入了一个NSPathControl
. 在属性检查器中,我将其样式设置为“弹出”。
这几乎像我预期的那样工作。如果我单击它,我会得到一个菜单,其中包含一些常见路径或与当前选择相关的路径,以及一个“选择...”选项,它会打开一个对话框并允许选择路径。
问题是,它看起来不像 Cocoa 下拉菜单,因为根本没有边框或按钮。我怎样才能使它看起来更像一个NSPopUpButton
,这大概是有人所期望的。
或者,我是 Cocoa 的新手,并且愿意被告知我正在以错误的方式解决这个问题。如果我以错误的方式进行操作,那么让用户选择路径的更好方法是什么?
这是我正在尝试做的一个例子:
看到路径下拉菜单了吗?我本来希望它看起来像其中之一......
...但是,也就是说,我正在尝试编写一个表现良好的 Cocoa 应用程序,所以我真正想要的是,“这样做的正确方法是什么?” 提前致谢。
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:
Why does the URL to
Macintosh HD
ends with double slash?How can I distinguish clicks on
Macintosh HD
andMy Macbook
, and what is the correct URL toMy Macbook
, where Finder shows the list of mounted volumes (on my macbook it isMacintosh HD
andBOOTCAMP
)?
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.
objective-c - NSPathControl setDoubleAction 不起作用
我NSPathControl
在我的应用程序中添加了一个视图。在awakeFromNib
我设置双击动作: -
不幸的是,双击PathControl 不起作用,虽然我首先测试了这个简单的独立测试应用程序。
我怀疑可能与其他元素有一些相互作用。特别是我有一个NSSplitView
包含 aNSOutlineView
和 a 的 a NSTableView
,它们都具有 Double Click Target 绑定来分隔控制器中的选择器。
我不明白为什么这些会影响 NSPathControl。
如果我将NSPathControl
选择器连接到 dClickPath: 然后单击 PathControl 即可。
objective-c - NSPathControl 与路径的每个组件的弹出窗口?
从Apple 的示例代码和阅读文档中,我看不到将其配置为与 Xcode 编辑器窗口中的“跳转栏NSPathControl
”类似的行为:
即让它代表一个路径(或其他类型的层次结构)并使路径的每个组件成为可点击的弹出窗口以导航层次结构..?
有没有人幸运地通过NSPathControlDelegate
听点击并在临时窗口中显示菜单来伪造这种行为?
似乎是一种常见的设计,人们甚至会期望一些 OSS 实现——但还没有这样的运气,还没有用谷歌搜索它..
ios - iOS 的 NSPathControl 等效项
iOS (iPhone/iPad) 上是否有像 OSX 中的 NSPathControl 一样工作的控件?(要动态地将节点添加到事件的根,可以返回,删除事件的节点......)