我有一个用于处理不同应用程序设置的 Objective C++ 程序。有没有办法使用预处理器定义来创建要在 NSTextFieldCell、NSButtonCell 使用的字符串中替换的文本?
例如,不是有一个 NSTextField 说“设置 Foo 的选项”,而是有一个预处理器宏(GCC_PREPROCESSOR_DEFINITIONS):
MY_PROGRAM_NAME=Bar
然后 NSTextField 的文本将是:
"Options for setting up $(MY_PROGRAM_NAME)"
然后会有预期的结果:“设置栏的选项”
注意 1:显然,我可以在代码中以编程方式进行替换。
注意 2:这是针对 Xcode 7 的,所以也许没有这样的功能?
最佳答案
一句话,没有。 Xcode nib 编译器不执行任何类型的变量替换,并且——一旦编码——所有归档的属性值都是静态的。
但是,如果这对您的应用程序来说是一件“事情”,并且没有涉及太多 View 类(例如,只有 NSTextField),那么推出您自己的解决方案并不难。
我会考虑这种方法:
字典作为应用程序包中的 XML 文件/字典。
全局变量或将其添加到
-[NSUserDefaults registerDefaults:]
NSTextField
(举个例子)。覆盖任一-initWithCoder:
或 -awakeFromNib
.在覆盖中,获取字符串View 对象的值,使用公共(public)扫描它以查找替换
变量字典,并根据需要更新字符串属性。
您的自定义子类。
关于ios - Xcode 界面生成器 UI 中的字符串是否有替换文本语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48310373/