QInputDialog喜欢Cocoa / Xcode中的东西?

时间:2011-03-11 04:08:24

标签: objective-c cocoa string input window

我是Xcode和Cocoa / Objective-C的新手,我正在尝试实现像QInputDialog一样简单的东西,可以在整个程序中重复使用 - 每次向用户发送一条独特的消息因此启动并返回一个字符串。

我在网上搜索过并找到了多种方法,但似乎没有什么比这更清楚或更简洁 - 无论如何我都能理解。

那里有什么简单的:

  • 以字符串形式向用户创建/启动带有新消息标签的方法的窗口。
  • 有一个NSTextField来接收用户输入。
  • 关闭窗口并将文本字段(如果接受)中的字符串返回给调用方法。

...

1 个答案:

答案 0 :(得分:-1)

输入的模态提示非常类似于Mac。这就像用板球拍击打用户的脸并大喊“告诉我现在的答案!”

正确的解决方案是将您的文本字段放入非模态窗口,以便在用户调用任何需要该值的操作时该值已准备就绪。如果用户未填写该字段并且您需要值,则会发出蜂鸣声并显示the “hey, you forgot this” icon。如果该字段在窗口中不相关,则用户从中开始操作,或者如果您将需要多个事实作为输入,则显示另一个窗口,非模态,具有自己的窗口控制器,以接收所有输入你需要采取行动。

单独的非模态窗口也将使用户能够并行填写和/或执行多个此类操作。

如果您必须使用模态对话框来请求该值,您可以而且应该make it a sheet,但您仍需要在IB或代码中从头开始构建面板及其内容。

另请参阅the Sheet Programming Guide中的the chapter on windowsthe Human Interface Guidelines