在NSTableView更改表视图大小时,基于视图的具有动态高度的行不会调整其行的大小.当行高从表视图的宽度派生时,这是一个问题(想想填充列并包装因此扩展行大小的文本块).
NSTableView每当它改变大小但我没有成功时,我一直试图调整行的大小:
enumerateAvailableRowViewsUsingBlock:,则一些不可见的行不会调整大小,因此当用户滚动并显示这些行时,会显示旧的高度.有人可以帮忙吗?
这是我检测表视图大小更改的位置 - 在表视图的委托中:
- (void)tableViewColumnDidResize:(NSNotification *)aNotification
{
NSTableView* aTableView = aNotification.object;
if (aTableView == self.messagesView) {
// coalesce all column resize notifications into one -- calls messagesViewDidResize: below
NSNotification* repostNotification = [NSNotification notificationWithName:BSMessageViewDidResizeNotification object:self];
[[NSNotificationQueue defaultQueue] enqueueNotification:repostNotification postingStyle:NSPostWhenIdle];
}
}
Run Code Online (Sandbox Code Playgroud)
以下是上面发布的通知的处理程序,其中可见行的大小调整:
-(void)messagesViewDidResize:(NSNotification *)notification
{
NSTableView* messagesView = self.messagesView;
NSMutableIndexSet* visibleIndexes = [NSMutableIndexSet new];
[messagesView enumerateAvailableRowViewsUsingBlock:^(NSTableRowView *rowView, NSInteger row) {
if (row >= 0) {
[visibleIndexes addIndex:row];
} …Run Code Online (Sandbox Code Playgroud) 有没有人知道是否NSFastEnumeration真的更快(如在运行时性能)比使用NSEnumerator或(对于数组)使用整数计数器并循环元素?
如果它确实更快,它如何达到这个速度?
或许"快速"实际上指的是编写迭代代码的速度更快?
提前致谢.
知道NSViewController在窗口内部存档用于恢复(用户界面保存)目的的最佳实践是什么?我试过在窗口控制器的encodeRestorableStateWithCoder:方法中存档它 只是为了发现视图控制器在restoreStateWithCoder:被调用时没有被取消存档 .
// NSWindowController subclass
-(void)encodeRestorableStateWithCoder:(NSCoder *)coder
{
[super encodeRestorableStateWithCoder:coder];
NSViewController* contentViewController = self.contentViewController;
if (contentViewController) {
[coder encodeObject:contentViewController forKey:BSContentViewControllerResumeKey];
}
}
-(void)restoreStateWithCoder:(NSCoder *)coder
{
[super restoreStateWithCoder:coder];
NSViewController* contentViewController = [coder decodeObjectForKey:BSContentViewControllerResumeKey];
if (contentViewController) {
// somehow this never get executed since contentViewController always comes out nil
self.contentViewController = contentViewController;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,此视图控制器包含管理其自己的子视图的其他视图控制器,因此在NSCoder实例中需要一些范围- 只需coder向下传递提供的对象将导致存档中的名称冲突.
提前致谢!
有没有办法在系统中尚未定义方法时提供方法实现(与框架定义的方法具有完全相同的名称)?例如,方法[NSSomeClass someMethod:]仅存在于Mac OS X 10.6中,如果我的应用程序在10.5中运行,我将在类别中提供该方法的定义.但是当应用程序在10.6中运行时,我希望运行OS提供的方法.
背景:我正在创建一个针对10.5和10.6的应用程序.问题是我最近意识到该方法+[NSSortDescriptor sortDescriptorWithKey:ascending:]仅存在于10.6中,并且我的代码已经被该方法调用所困扰.我可以为它提供一个默认实现(因为这次我自己实现起来并不太困难),但是我希望每当我的应用程序在10.6上运行时都会调用"本机"实现.此外,如果我将来遇到类似的问题(更难以实现自己的方法),我可能无法摆脱提供单线代替.
这个问题模糊地类似于通过ObjC类覆盖一个方法并调用默认实现?但不同之处在于我只想在系统还没有实现时才提供实现.
谢谢.
__weak在使用自动引用计数(ARC)时,是否有iOS中的类列表无法使用指针引用?
Apple 过渡到ARC发行说明目前仅列出了Mac类:
哪些类不支持归零弱引用?
您当前无法创建对以下类的实例的归零弱引用:
NSATSTypesetter,NSColorSpace,NSFont,NSFontManager,NSFontPanel,NSImage,NSMenuView,NSParagraphStyle,NSSimpleHorizontalTypesetter,NSTableCellView,NSTextView,NSViewController,NSWindow,和NSWindowController.此外,在OS X中,AV Foundation框架中的任何类都不支持弱引用.
是否有类似的UIKit类列表,甚至是特定于iOS的类?
谢谢.
在Xcode 4.4和4.4.1上我遇到了与我正在处理的特定项目相同的问题,我似乎无法从Refactor菜单选项重命名任何类或变量.
每次我尝试重命名时,我都会输入类/变量的新名称,然后单击Preview左下角开始一个微调器的位置Finding files....但是,我接到一条消息说:
选择不是可以重命名的类型.
进行不同的选择,然后重试.
我很确定这不是我特定的Xcode安装的问题,因为我可以很好地重构其他项目,只是我似乎无法重构这个特定的项目.
有想法的人吗?对于这个项目,我没有任何特别奇特的配置,它似乎是一个随机的痛苦.我删除了所有的派生数据并重新编制索引,但这似乎没有帮助.
由于它在其他项目中运行正常,我想我可以尝试做的一件事就是重新生成实际的项目文件本身.我不知道是否有办法自动执行此操作?
在 Flask-Restplus 中,我需要建模一个属性值,它可能是一个字符串列表或一个对象列表。
也就是说它看起来像这样:
{
'my_attribute': [
'value1',
'value2'
]
}
Run Code Online (Sandbox Code Playgroud)
或者它可以如下所示:
{
'my_attribute': [
{
'name': 'value1',
'foo': 'something'
},
{
'name': 'value2',
'foo': 'something else'
}
]
}
Run Code Online (Sandbox Code Playgroud)
我应该如何在 Flask-Restplus' 中建模api.model?
我可以ACAccount在线程之间共享一个实例吗?具体来说,我想创建TWRequest不同NSOperationQueue实例使用的多个对象.这些TWRequest对象将共享一个ACAccount实例.这样安全吗?
谢谢.
我的iPhone应用程序似乎无法使用不使用类似美国QWERTY布局的软键盘.那时我将键盘设置为法语或德语,甚至文本字段也不能接收文本,并且No input manager class for input mode控制台中显示错误消息错误(在Xcode下调试时).切换到表情符号键盘也会出现同样的问题.但问题不会发生在QWERTY键盘布局上,如荷兰语和印尼语键盘.
所有情况都是一致的,可重复的设备(iPhone 4)和iPhone模拟器.这些是Xcode调试器控制台中的错误消息
当键盘设置为法语时:
No input manager class for input mode: fr_FR
当键盘设置为德国时:
No input manager class for input mode: de_DE
当键盘设置为表情符号时:
No input manager class for input mode: emoji
我的应用程序的部署目标是iOS 3.1.3(我仍然支持第一代设备),但开发环境是Xcode 4.3.1和iOS 5.1 Simulator.(我不知道这是否相关,但以防万一).
任何人都可以帮忙解决这个问题?
提前致谢.
NSTextField当用户输入时,在其下方动态显示"推荐列表" 的最简单方法是什么?就像Safari的地址栏有一些菜单(我很自信Safari的地址栏建议是菜单,因为它有圆角,蓝色渐变选择和背景模糊).
我尝试过使用NSTextView自动完成工具,但发现它不合适:

在上面的示例屏幕截图中,每当我选择自动填充建议时,文本字段仅替换K列表中的建议项目,从而导致Abadi Abadi Kurniawan.
这些是我想要实现的:
注意:这不是关于在文本字段后面添加进度指示器的问题.
objective-c ×6
cocoa ×5
cocoa-touch ×3
ios ×3
macos ×3
appkit ×2
ios5 ×2
autocomplete ×1
flask ×1
iphone ×1
iterator ×1
nsarchiving ×1
nstableview ×1
nstextfield ×1
osx-lion ×1
performance ×1
python ×1
refactoring ×1
resume ×1
safari ×1
twitter ×1
uikit ×1
xcode ×1
xcode4.4 ×1
xcode4.5 ×1