如何从StringSwift中删除变音符(或重音符号)(比如说改变"één"到"een")?我是否必须回到NSString或者可以在Swift中完成?
我已经找到了如何大写句子的所有单词,但不仅仅是第一个单词.
NSString *txt =@"hi my friends!"
[txt capitalizedString];
Run Code Online (Sandbox Code Playgroud)
我不想改成小写并将第一个字符大写.我想把第一个单词大写,而不改变其他单词.
如何存储NSUInteger使用的NSCoding协议,因为没有任何方法对NSCoder类似-encodeUnsignedInteger:(NSUInteger)anInt forKey:(NSString *)aKey像有是NSInteger?
以下是有效的,但这是最好的方法吗?这确实会不必要地创建对象.
@interface MYObject : NSObject <NSCoding> {
NSUInteger count;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:[NSNumber numberWithUnsignedInteger:count] forKey:@"count"];
}
- (id)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self != nil) {
count = [[decoder decodeObjectForKey:@"count"] unsignedIntegerValue];
}
return self;
}
Run Code Online (Sandbox Code Playgroud) 例如,在NSDictionaryCocoa框架中访问变量通常会定义键,例如UIKeyboardBoundsUserInfoKey.如何检查是否在运行时定义了键?我找到了关于如何检查类和函数的示例,但没有找到常量.
是否可以为NSSplitView子视图的折叠和扩展设置动画?(我知道替代类的可用性,但更喜欢使用NSSplitView而不是动画.)
我正在使用该方法- (void)setPosition:(CGFloat)position ofDividerAtIndex:(NSInteger)dividerIndex执行折叠和扩展.
现在我有一个按钮的IBAction,它生成一个随机数,每个数字分配给UILabel中的显示文本.而不是只是出现,我希望文本淡入或任何其他有趣的动画也会很酷.有谁知道一个简单的方法来实现这一目标?
现在我只是用
labelMain.text = @"my text";
Run Code Online (Sandbox Code Playgroud) 这些NSResponder方法-selectNextKeyView或-nextValidKeyViewMac OS X 是否有等效的iPhone ?我知道这个-becomeFirstResponder方法,但是当视图层次结构变得更复杂时,找出调用它的视图并不是很好.
必须有某种方式来找到这个,因为当我在iPhone模拟器中按Tab键时,焦点正确地转到下一个UITextField.这让我想知道当我按Tab键时到底发生了什么.有任何想法吗?
更新:这正是我想要的,但它_nextKeyResponder是私有API,所以禁止.有没有办法在不使用私有API的情况下进行'假'标签按键操作?
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
// Try to find next responder
UIView *nextResponder = (UIView *)[self.view _nextKeyResponder];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
[self.tableView scrollRectToVisible:[self.tableView convertRect:[nextResponder frame] fromView:nextResponder] animated:YES];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
return NO; // We do not want UITextField to insert line-breaks.
}
Run Code Online (Sandbox Code Playgroud) 有没有办法在运行时发现给定类存在哪些子类?
编辑:从答案到目前为止,我认为我需要澄清一点我想做的事情.我知道这在Cocoa中并不常见,并且可能会有一些警告.
我正在使用动态创建模式编写解析器.(参见Buck and Yacktman撰写的Cocoa Design Patterns一书,第5章.)基本上,解析器实例处理堆栈,并实例化知道如何执行某些计算的对象.
如果我可以获得MYCommand该类的所有子类,我可以为用户提供可用命令的列表.此外,在第5章的示例中,解析器具有替换字典,因此可以使用+, - ,*和/等运算符.(它们映射到MYAddCommand等等)对我来说,似乎这些信息属于MyCommand子类,而不是解析器实例,因为它有点挫败了动态创建的想法.
我的问题是我没有显示我在Unity3D的第三人称控制器中设置的自定义漫游动画.
动画是从具有model@walk.fbx结构的FBX文件导入的.我知道动画是有效的,因为如果我将它用作它显示的空闲动画.另一方面,它似乎也不是控制器脚本的问题,因为它适用于原型字符.
似乎正在播放的动画是在动画组件中选择的动画(选择了"自动播放").任何从第三人称控制器更改动画的尝试都适用于原型角色,但不适用于我的.
我没有也不想运行和跳转动画.使用原型角色,我在每个没有不利影响的情况下设置了漫步动画.控制器不会以这种方式关闭动画,因为控制台中没有来自第三人控制器脚本的日志条目.调用CrossFade调用的相关行.
关于我下一步可以看到的任何线索?它更可能是控制器或动画的问题吗?还有别的吗?
更新:下面是我的控制器的代码.当我使用Unity提供的建筑工人的样本模型时,它工作正常.这些行在_animation.CrossFade预期的时间被调用.使用Play或Blend改为没有帮助.控制台中没有记录错误.
但是对于我们的自定义动画,它不起作用.我现在怀疑问题在于模型.不幸的是,我无权分享该模型的样本.我已经向动画师询问了他如何创建FBX导出的更多细节.他需要使用哪些特定设置才能使模型在Unity中运行?虽然如果我将它们独立地添加到场景中,动画确实有效,这仍然很奇怪.
// Require a character controller to be attached to the same game object
@script RequireComponent(CharacterController)
public var idleAnimation : AnimationClip;
public var walkAnimation : AnimationClip;
public var walkMaxAnimationSpeed : float = 0.75;
private var _animation : Animation;
enum CharacterState {
Idle = 0,
Walking = 1,
}
private var _characterState : CharacterState;
// The speed when walking
var walkSpeed = 2.0;
var speedSmoothing = 10.0;
var …Run Code Online (Sandbox Code Playgroud) 我的应用使用了UISearchDisplayController.当用户输入搜索词时,我希望它在搜索栏中保持可见.如果用户选择其中一个匹配结果,则此方法有效,但如果用户单击"搜索"按钮则不行.
这有效:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == self.searchDisplayController.searchResultsTableView) {
NSString *selectedMatch = [self.searchMatches objectAtIndex:indexPath.row];
[self.searchDisplayController setActive:NO animated:YES];
[self.searchDisplayController.searchBar setText:selectedMatch];
return;
}
...
Run Code Online (Sandbox Code Playgroud)
但是,如果我在-searchBarSearchButtonClicked:文本中做同样的事情不会留在搜索栏中.关于如何在这种情况下实现这一目标的任何想法?
相关的,如果我设置搜索栏的文本(但保持UISearchDisplayController不活动状态),则会触发searchResultsTableView的显示.我只想表明当用户点击搜索栏时.
编辑:找到一种解决方法来设置搜索栏的文本,而不会在任何时候显示searchResultsTableView:
// This hacky YES NO is to keep results table view hidden (animation required) when setting search bar text
[self.searchDisplayController setActive:YES animated:YES];
[self.searchDisplayController setActive:NO animated:YES];
self.searchDisplayController.searchBar.text = @"text to show";
Run Code Online (Sandbox Code Playgroud)
更好的建议仍然欢迎!
我有一个UIProgressView,我试图改变进度,但永远不会更新.我的"慢"操作是从NSoperation/NSOperation队列完成的,所以它应该是多线程的.
你有没有经历过这个,或者你有什么想法解决这个问题?
谢谢 :)
尝试使用NSValueTransformerCore Data中提供的系统时,我收到以下警告:
Warning: no NSValueTransformer with class name 'NSKeyedUnarchiveFromDataTransformerName' was found for attribute 'someAttribute' on entity 'SomeEntity'
Run Code Online (Sandbox Code Playgroud)
为什么NSKeyedUnarchiveFromDataTransformer不被认可?
当我从iOS应用程序调用某个函数时,它会返回一个id数据类型.我无法看到这个函数,所以我不知道它在做什么或者返回类型到底是什么.
如果我使用NSLog("@"...)类似于此的字符串将其打印到控制台:
2012-01-18 19:03:08.915 HelloWorld[165:707] Key Press State.
有没有办法让我确定这个基本Id对象的结构?我将如何获得该响应的特定部分,例如"Key press state".字符串解析似乎是一个可怕的想法,但也许这是唯一的方法.也许数据真的只是一个NSString?
谢谢!
cocoa ×7
objective-c ×6
cocoa-touch ×4
iphone ×4
ios ×2
macos ×2
nsstring ×2
animation ×1
casting ×1
class ×1
core-data ×1
nslog ×1
nssplitview ×1
reflection ×1
string ×1
swift ×1
uisearchbar ×1