我正在为iOS 7编写一个应用程序,我正在尝试在不可编辑的UITextView中获得不错的格式.
插入一个子弹点角色很容易,但当然左压痕不会跟随.iOS 7在弹出点后设置左缩进的最简单方法是什么?
提前致谢,
坦率
我已经开发了一段时间的应用程序,我在设备上运行该应用程序时没有遇到任何问题......现在几天前,每当我连接 iPhone 时,它都会播放它的小“ka-chink”声音并显示在 Xcode 中,但几秒钟后它断开连接并与另一个“la-chink”重新连接,并继续这样做,直到我想把它扔出窗外。
当然,在不断断开连接的情况下无法在设备上进行调试,所以我只是:
我尝试了各种方法让手机再次正常工作,但到目前为止都无济于事..有人遇到过这种情况吗?任何解决方案?
更新:电缆和连接器很好,没有硬件问题。
与Apple一起更新OS X时一样,最新的XCode 4.4转储旧的(10.6)SDK,我发现自己需要使用10.7 SDK(或者我认为是10.8)并将我的部署目标设置为10.6以保持兼容性.
我更喜欢链接到较旧的SDK,因为我知道我不能错误地引入对尚不存在的API的调用.当我上次尝试逆向方法时,我发现自己经常做的事情.
我发现自己在做的是我使用XCode中的代码完成功能来选择像NSWorkspace这样的简单类的"正确"调用,然后在开发过程中一切正常,我忘了它,当我发布新版本时:Kaboum!整个应用程序在运行时在早期的OS X版本上爆炸; 经常在那些难以到达的地方:-)
或者至少这是我几年前的情况.
当然,到目前为止,有一种方法可以:
确保您不引入部署目标中尚未提供的API调用,即使它们已在SDK中定义
在构建或静态分析时检测此类调用
我确定我错过了什么,在某个地方的某个地方..请赐教!
最好的祝福,
坦率
我遇到了一个问题,后台应用程序使用LSUIElement = 1隐藏其停靠项,菜单栏并阻止它出现在Command-Tab应用程序切换器中.
它似乎只是雪豹的问题.
应用程序在菜单栏中放置一个NSStatusItem,并在单击时弹出一个菜单.选择"首选项..."应该会显示带有首选项的NSWindow.
第一件似乎不起作用的是Window没有在前面订购,而是出现在所有其他应用程序窗口后面.
我试着通过打电话来解决这个问题
[[NSApplication sharedApplication] activateIgnoringOtherApps: YES]
Run Code Online (Sandbox Code Playgroud)
但那没用.
过了一会儿,我发现菜单阻止了发送到运行循环的消息,所以我在MainController上编写了另一个方法,并发送了延迟消息:
[self performSelector:@selector(setFront :) withObject:[preferencesController window] afterDelay:1.0];
-(void)setFront: (id) theWindow {
[[NSApplication sharedApplication]activateIgnoringOtherApps:YES];
[theWindow orderFrontRegardless];
[theWindow makeKeyWindow];
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
}
Run Code Online (Sandbox Code Playgroud)
请注意send-every-possible-message-to-make-it-do-it-it-it-doing-doing方法.
这种方式有点好,窗口在所有应用程序的所有其他窗口的顶部被带到前面,但大部分时间它都不活动,这意味着它的标题栏是灰色的.单击标题栏也不会使窗口处于活动状态.单击窗口的内部将激活它!?
这一切似乎都不是豹子的问题; 只是调用activateIgnoringOtherApps并使窗口键似乎工作正常.
在Snow Leopard中有一个新的API,用于替换应该模拟其行为的LSUIElement:
http://developer.apple.com/mac/library/releasenotes/cocoa/appkit.html
我玩过这个,但它只是SL而且我无法设置LSUIElement.
我一直在为我的单人开发使用git一段时间,但直到现在我还没有遇到任何棘手的分支问题,我似乎已经忘记了一些基本的东西,我在阅读实用版之后无疑会"知道"使用Git Book控制..
我经常在我的网站上发布的内容之前发布几个版本,因此当出现错误报告时,我只会将它们应用于当前的主分支,而不是在下一个发布的版本中修复它们.当然,我想改变它以更快地修复.
假设1.0刚刚发布,1.1即将发布,但我已经开始研究1.3,例如
1.0 - released
1.1 - finished
1.2 - finished
1.3 - in development
Run Code Online (Sandbox Code Playgroud)
一个错误报告出现..通常这将在1.3中修复,但我如何在1.1中修复它?
据我所知,在svn和其他"传统"源代码控制系统中,我需要分支B.1.1和B.1.2并依次将更改应用于每个分支,然后从每个分支构建并最终应用修复主分支.
我似乎记得git,但是,做了一些聪明的事情:我分支B.1.1,在那里进行更改,做{something}和B.1.2并使用修复程序自动更新主分支.这是可能的还是我想象{something}?
有没有人知道是否有办法找出沙箱下是否可以访问特定的文件系统位置?
我想测试一下特定文件是否可以在普通的Powerbox规则下访问; 已经使用打开/保存对话框等添加到电源盒中.
我可以在触发沙箱异常之前执行此操作吗?
我可以捕获沙箱异常吗?
最好的祝福,
坦率
我有一个应用程序需要在计时器到期后成为最前面的应用程序,并在通过按下按钮启动计时器时退出最前面的状态,例如
我故意稍微解释一下,因为玩活动状态的sharedApplication
不做我想要的。
我通过做一个[[NSApplication sharedApplication] activateIgnoringOtherApps: YES]
而成为最前沿的应用程序,并且效果很好。
做相反的事情似乎不可能!?
[[NSApplication sharedApplication] deactivate]
不应该直接调用,但更重要的是不会将“命令选项卡顺序”中的下一个应用程序向前推进。该应用程序只是坐在那里,显示其菜单栏,但不再“处于活动状态”。
[[NSApplication sharedApplication] hide: self]
退出活动状态并将“命令选项卡顺序”中的下一个应用程序带到前面,但它也隐藏了所有应用程序窗口。
我需要某种方式将命令选项卡顺序中的下一个应用程序放在前面而不隐藏我的所有窗口。
有什么好的方法吗?
解决方案应该是 10.5 Leopard 和 10.6 兼容。
我确实有一个 1996 年左右的解决方案,但它涉及 Carbon API,我真的更喜欢用 Cocoa 或至少是 Foundation 的方式来做。
任何帮助将不胜感激。
我有一个每秒更新一次的NSWindow来显示当前时间.
这个绘图是处理器密集型的,我想避免在窗口被其他窗口完全遮挡时这样做.
不幸的是,[NSWindow isVisible]不会显示窗口是否在屏幕上实际可见,而只是显示它是否在屏幕上.意思是如果窗口在窗口列表中但被其他窗口完全遮挡isVisible == YES,我的自定义drawRect被调用,我最终将所有内容绘制到一个从未使用过的缓冲区中.
有没有办法检测窗口及其内容是否在屏幕上实际可见?
任何帮助将非常感激.
我正在沙盒化我的应用程序,我遇到了一个问题,因为我使用的库在修改原始文件时会创建临时文件,例如
当它在"Hello World.txt"中更改某些内容时,它将在同一目录中创建"Hello World_temp.txt"文件,然后在完成后将交换这两个文件.
这当然会破坏沙盒规则,因为您只能更改源文件而不能在文件夹中创建其他文件.
我找不到有关如何处理临时文件的任何建议,所以我目前只是在应用程序的容器中创建临时文件,在那里我可以写,然后交换文件..但是,这不是很好如果应用程序和文件位于不同的磁盘上,因为它将涉及复制而不是移动.
我们可以写入临时文件的位置吗?
最好的祝福,
坦率
我通过将 a放入 aNSView
以编程方式构建层次结构。我之前已经这样做过并且我的代码是正确的。NSStackView
NSScroller
视图层次结构是我所期望的,直到第一次通过运行循环(或显示)时,macOS Catalina(我认为是 Mojave)会自动将 a 插入NSVisualEffectView
到视图层次结构中。这把我的自定义绘图弄乱了。
我创建的层次结构是
NSScrollView -> NSStackView -> stack subviews
Run Code Online (Sandbox Code Playgroud)
在第一个显示循环之前,滚动视图“丰富”了这一点:
NSScrollView -> NSClipView -> NSStackView -> stack subviews
Run Code Online (Sandbox Code Playgroud)
第一次显示后,NSVisualEffects View 被添加到与 NSClipView 相同的级别:
NSScrollView -> NSClipView -> NSStackView -> stack subviews
-> NSVisualEffectsView
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉滚动视图我不想要视觉效果视图?
任何帮助,将不胜感激!
我正在 Mac 上开发一个现有的 Swift/Objective-C 项目,并在代码中创建一些 UI。我根据我管理的 NSTableView 中的选择启用一个按钮,而不使用 NSArrayController (出于原因)。
selectionIndexes
我在 上拥有房产MyController
:
@objc var selectionIndexes : IndexSet = IndexSet()
Run Code Online (Sandbox Code Playgroud)
我不确定是否有@objc
必要使其对 Cocoa Bindings 系统可见。
我使用以下方式连接按钮的绑定enabled
:
newButton.bind(NSBindingName.enabled, to: MyController.sharedInstance,
withKeyPath: "selectionIndexes",
options: [NSBindingOption.valueTransformer : MyTransformer()])
Run Code Online (Sandbox Code Playgroud)
这工作正常,使用正确的属性调用变压器并正确设置启用,但对选择的更改不会触发绑定,因此按钮保持禁用状态。
我必须明确告诉系统我正在更改该值,例如
self.willChangeValue(for: \.selectionIndexes )
self.selectionIndexes = proposedSelectionIndexes
self.didChangeValue(for: \.selectionIndexes)
Run Code Online (Sandbox Code Playgroud)
这看起来很蹩脚。有更好的方法吗?
自1993年以来,我一直是Mac程序员,并且发现有时很难进入iOS框架.
我有一个专为iPhone 5屏幕尺寸设计的iPhone应用程序,根据设备的方向(肖像和2xlandscape)显示3种不同的视图,具有不同的功能.
现在在iPad上我希望将横向屏幕分成由一个(现有)视图控制器控制的左侧部分和由另一个(现有)视图控制器控制的右侧部分.
作为尝试支持分屏多任务的一部分,我想支持大小类,但我的视图目前在xib文件中......据我所知,大小类必然会使用故事板,所以我正在迁移到故事板对我来说,这看起来非常糟糕.
我可以看到这个想法是
1 window = 1 root controller
和
1 screen full = 1 scene = 1 view controller
.
但我需要的是一个场景中的两个(或3个)视图控制器.
我已经看过UISplitView,它看起来很完美只有左视图控制器必须是导航控制器,所以不是我需要的.也许自定义集合视图控制器是答案?
我确定我错过了一些东西,因为我非常困在Mac思维模式中并且之前没有使用过故事板.在这种情况下,重用现有视图控制器的最佳方法是什么?
任何建议将非常感谢.
cocoa ×9
macos ×8
ios ×3
appkit ×2
iphone ×2
nswindow ×2
objective-c ×2
sandbox ×2
xcode ×2
branch ×1
cocoa-touch ×1
debugging ×1
git ×1
ios7 ×1
nsscrollview ×1
sdk ×1
storyboard ×1
swift ×1
textkit ×1
uitextview ×1
xcode4 ×1