我正在尝试向基于视图的NSOutlineView中的单元格添加一些格式。无论我尝试什么,都将以我指定的任何格式呈现文本。这是我目前的方法:
NSMutableAttributedString *versionString = [[NSMutableAttributedString alloc]
initWithString:myString];
[versionString addAttribute:NSForegroundColorAttributeName
value:[NSColor redColor] range:NSMakeRange(0, 3)];
NSTableCellView result = [outlineView makeViewWithIdentifier:@"DataCell"
owner:self];
result.textField.allowsEditingTextAttributes = YES;
result.textField.attributedStringValue = versionString;
Run Code Online (Sandbox Code Playgroud)
是否无法在NSOutlineView和标准NSTextField中呈现属性字符串?
cocoa objective-c nsoutlineview nstableview nsattributedstring
好吧,这是一个简单的问题,但我无法弄清楚。
基本上我想<a href="[^<>]*">[^<>]*</a>从一个大html文件中提取所有链接()。
我尝试用 执行此操作sed,但得到了各种结果,但不是我想要的。我知道我的正则表达式是正确的,因为我可以替换文件中的所有链接:
sed 's_<a href="[^<>]*">[^<>]*</a>_TEST_g'
Run Code Online (Sandbox Code Playgroud)
如果我在类似的东西上运行它
<div><a href="http://wwww.google.com">A google link</a></div>
<div><a href="http://wwww.google.com">A google link</a></div>
Run Code Online (Sandbox Code Playgroud)
我明白了
<div>TEST</div>
<div>TEST</div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能摆脱其他一切并只打印匹配项?我首选的最终结果是:
<a href="http://wwww.google.com">A google link</a>
<a href="http://wwww.google.com">A google link</a>
Run Code Online (Sandbox Code Playgroud)
附言。我知道我的正则表达式不是最灵活的,但它足以满足我的意图。
我有一个UIImageView视图和一个图像设置.我想删除图像就像我们在带有橡皮擦的photoshop中所做的那样.我该如何实现这一目标?另外,如何撤消擦除?
我正试图找到并替换任何出现[URL]的NSString.这是我的方法:
NSString *test = @"Test [URL] 123";
test = [test stringByReplacingOccurrencesOfString:@"[URL]"
withString:@"HERE"
options:NSRegularExpressionSearch
range:NSMakeRange(0, test.length)];
Run Code Online (Sandbox Code Playgroud)
结果是Test [HEREHEREHERE] 123.我想这是因为[URL]这3个字符中的任意一个,所以所有3个字符将被HERE一个接一个地替换.
但是我也试过\[URL\]了同样的结果.
所以,实际上,我怎么搜索的字符[和]?
我有一个单词列表存储在一个NSArray,我想找到其中的所有单词的结尾'ing'.
有人可以提供一些示例/伪代码.
我有一个urlString: http://www.youtube.com/watch?v=5kdEhVtNFPo
我希望能够将其改为: http://www.youtube.com/v/5kdEhVtNFPo
我该怎么做呢?我不确定我是否应该使用实例方法substringWithRange:或substringFromIndex:
我尝试了这个删除第一部分,只留下视频ID(它删除http://www.youtube.com/watch?v=)现在我只需要添加http://www.youtube.com/v/到字符串的开头.
NSString *newUrlString = [urlString substringFromIndex:31];
Run Code Online (Sandbox Code Playgroud) 什么是输出printf("%d");或printf("%p");声明?
当然我知道我应该传递参数,因为printf期待一个,但假设我将把这个留空将会发生什么?
我知道这会从堆栈中读取一些值(从应该放置函数参数的地方).假设我正在运行Linux机器,我可以期待这将是一些有效的值(例如函数返回地址)吗?
我试图从一个可变数组中删除和对象 - 一个遍历每一帧的数组(参见tick:方法).
我正进入(状态
*集合<__ NSArrayM:0xaa99cb0>在枚举时发生了变异.
例外.
所以我添加 @synchronized()了锁定它不被其他线程触及,但它仍然失败.
- (void)addEventSubscriber:(id <EventSubscriber>)eventSubscriber
{
[_eventSubscribers addObject:eventSubscriber];
}
- (void)removeEventSubscriber:(id <EventSubscriber>)eventSubscriber
{
@synchronized(_eventSubscribers) // Not working.
{
[_eventSubscribers removeObject:eventSubscriber];
}
}
- (void)tick:(ccTime)dt
{
for (id <EventSubscriber> subscriber in _eventSubscribers)
{
if ([subscriber respondsToSelector:@selector(tick:)])
{
[subscriber tick:dt];
}
}
}
Run Code Online (Sandbox Code Playgroud) 我在iOS上的Objective C中使用反向地理编码返回城市时遇到了麻烦.我能够在completionHandler中记录这个城市,但是如果从另一个函数调用它,我似乎无法弄清楚如何将它作为字符串返回.
city变量是在头文件中创建的NSString.
- (NSString *)findCityOfLocation:(CLLocation *)location
{
geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
if ([placemarks count])
{
placemark = [placemarks objectAtIndex:0];
city = placemark.locality;
}
}];
return city;
}
Run Code Online (Sandbox Code Playgroud) nib文件中顶级对象的加载顺序是随机的还是可以确定的?我认为它会按照我将它们放入Interface Builder中的顺序加载对象.但似乎并非总是如此.
我想创建一个类似于Interface Builder的检查器视图,其中不同的部分具有交替的背景颜色.我计划通过在我的笔尖中将这些部分作为顶级视图进行排序,然后根据加载顺序对它们进行着色.
我开始使用Lumberjack日志框架.它需要一个调用的整数变量ddLogLevel,只要我调用其中一个日志宏就可以定义它.我可以写
static const int ddLogLevel = LOG_LEVEL_INFO
Run Code Online (Sandbox Code Playgroud)
在每个文件的顶部实现这一目标.但是,除了日志宏之外,我宁愿不写任何东西,就像我一样NSLog.我可以通过在我的项目的前缀头中定义上面的变量来做到这一点.这种方法的问题是,如果我想在我的某些文件中使用不同的日志级别,那么我无法重新声明该静态变量.
我想检查两种枚举类型,但似乎不起作用。我有以下几点:
typedef enum {
ZSSegmentTypeE,
ZSSegmentTypeS,
ZSSegmentTypeO,
ZSSegmentTypeD,
ZSSegmentTypeN
} ZSSegmentType;
Run Code Online (Sandbox Code Playgroud)
以下作品:
if (someSegmentType != ZSSegmentTypeN) {
// Works
}
Run Code Online (Sandbox Code Playgroud)
以下不工作:
if (someSegmentType != ZSSegmentTypeN || someSegmentType != ZSSegmentTypeD) {
// Does NOT work
}
Run Code Online (Sandbox Code Playgroud)
为什么第二个示例不起作用,我正在测试两个不同的枚举?我在理解枚举和比较的工作方式时缺少什么?
我有一个UILabel在我的iPhone应用程序模拟器.它显示一个硬币计数,我有一个动作,计数增加1亿.我希望这个数字继续上升,但由于某种原因,一旦计数达到20亿,它会增加一个减号并开始倒计时,然后重新计算到20亿并再次退回,依此类推.
我希望能够显示更多的数字,即数万亿等...有谁知道这是怎么回事以及如何修复它所以标签数字将继续上升到我想要的高度.
我正在使用Xcode和Interface Builder并在模拟器中运行.我将数字存储在一个int变量中,如果这很重要的话.